{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/classnames/index.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/core-js/modules/_string-html.js","webpack:///./node_modules/@nrk/serum-imagecrop-utils/lib/index.js","webpack:///./src/v1/components/background/style.css?916c","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_strict-method.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/core-js/modules/_object-sap.js","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./src/v1/components/foreground/text/style.css?418a","webpack:///./src/v1/components/background/image/style.css?8a23","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/core-js/modules/_typed-array.js","webpack:///./node_modules/core-js/modules/_metadata.js","webpack:///./src/v1/components/foreground/style.css?61e4","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/core-js/modules/_meta.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/core-js/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./src/v1/components/foreground/map/style.css?43af","webpack:///./src/v1/components/foreground/bylineinline/style.css?eb14","webpack:///./src/v1/components/source/modal/style.css?04c5","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/modules/_object-gopn.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./src/v1/lib/serum-imagecrop.js","webpack:///./src/v1/components/foreground/chapter/style.css?8129","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/_string-trim.js","webpack:///./node_modules/core-js/modules/_validate-collection.js","webpack:///./src/v1/components/foreground/linkout/style.css?9508","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/modules/_flags.js","webpack:///./node_modules/core-js/modules/_species-constructor.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/core-js/modules/_string-at.js","webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/core-js/modules/_is-regexp.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/core-js/modules/_regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/_fix-re-wks.js","webpack:///./node_modules/core-js/modules/_user-agent.js","webpack:///./node_modules/core-js/modules/_collection.js","webpack:///./node_modules/core-js/modules/_typed.js","webpack:///./node_modules/core-js/modules/_object-forced-pam.js","webpack:///./node_modules/core-js/modules/_set-collection-of.js","webpack:///./node_modules/core-js/modules/_set-collection-from.js","webpack:///./src/v1/components/App.css?3e2c","webpack:///./src/v1/components/foreground/intro/style.css?11d9","webpack:///./src/v1/components/foreground/byline/style.css?d502","webpack:///./src/v1/components/foreground/linkout/link/style.css?313b","webpack:///./node_modules/body-scroll-lock/lib/bodyScrollLock.min.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_wks-define.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/core-js/modules/_set-proto.js","webpack:///./node_modules/core-js/modules/_invoke.js","webpack:///./node_modules/core-js/modules/_string-ws.js","webpack:///./node_modules/core-js/modules/_inherit-if-required.js","webpack:///./node_modules/core-js/modules/_string-repeat.js","webpack:///./node_modules/core-js/modules/_math-sign.js","webpack:///./node_modules/core-js/modules/_math-expm1.js","webpack:///./node_modules/core-js/modules/_string-context.js","webpack:///./node_modules/core-js/modules/_fails-is-regexp.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/core-js/modules/_create-property.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/core-js/modules/_array-fill.js","webpack:///./node_modules/core-js/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/core-js/modules/_regexp-exec.js","webpack:///./node_modules/core-js/modules/_advance-string-index.js","webpack:///./node_modules/core-js/modules/_task.js","webpack:///./node_modules/core-js/modules/_microtask.js","webpack:///./node_modules/core-js/modules/_new-promise-capability.js","webpack:///./node_modules/core-js/modules/_typed-buffer.js","webpack:///./node_modules/core-js/modules/_own-keys.js","webpack:///./node_modules/core-js/modules/_replacer.js","webpack:///./src/v1/components/foreground/linkout/card/style.css?ee91","webpack:///./src/v1/components/background/video/style.css?0732","webpack:///./src/v1/components/background/black/style.css?1276","webpack:///./src/v1/components/background/photocredit/style.css?fa39","webpack:///./src/v1/components/source/show-source-button/style.css?9dff","webpack:///./src/v1/components/logo/style.css?177d","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/modules/_wks-ext.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/_object-gopn-ext.js","webpack:///./node_modules/core-js/modules/_same-value.js","webpack:///./node_modules/core-js/modules/_bind.js","webpack:///./node_modules/core-js/modules/_parse-int.js","webpack:///./node_modules/core-js/modules/_parse-float.js","webpack:///./node_modules/core-js/modules/_a-number-value.js","webpack:///./node_modules/core-js/modules/_is-integer.js","webpack:///./node_modules/core-js/modules/_math-log1p.js","webpack:///./node_modules/core-js/modules/_math-fround.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/core-js/modules/_array-reduce.js","webpack:///./node_modules/core-js/modules/_array-copy-within.js","webpack:///./node_modules/core-js/modules/es6.regexp.exec.js","webpack:///./node_modules/core-js/modules/es6.regexp.flags.js","webpack:///./node_modules/core-js/modules/_perform.js","webpack:///./node_modules/core-js/modules/_promise-resolve.js","webpack:///./node_modules/core-js/modules/es6.map.js","webpack:///./node_modules/core-js/modules/_collection-strong.js","webpack:///./node_modules/core-js/modules/es6.set.js","webpack:///./node_modules/core-js/modules/es6.weak-map.js","webpack:///./node_modules/core-js/modules/_collection-weak.js","webpack:///./node_modules/core-js/modules/_to-index.js","webpack:///./node_modules/core-js/modules/_flatten-into-array.js","webpack:///./node_modules/core-js/modules/_string-pad.js","webpack:///./node_modules/core-js/modules/_object-to-array.js","webpack:///./node_modules/core-js/modules/_collection-to-json.js","webpack:///./node_modules/core-js/modules/_array-from-iterable.js","webpack:///./node_modules/core-js/modules/_math-scale.js","webpack:///./node_modules/core-js/modules/core.is-iterable.js","webpack:///./node_modules/core-js/modules/_partial.js","webpack:///./node_modules/core-js/modules/_path.js","webpack:///./node_modules/core-js/modules/_object-define.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///./node_modules/domready/ready.js","webpack:///./node_modules/@nrk/dh-analytics-utils/dist/dh-analytics-utils.min.js","webpack:///./node_modules/@nrk/dh-simple-error-report/dist/simple-error-report.min.js","webpack:///./src/v1/components/foreground/timing/style.css?7939","webpack:///./src/v1/components/foreground/blockquote/style.css?5d51","webpack:///./src/v1/components/foreground/byline/category/style.css?4114","webpack:///./src/v1/components/section/style.css","webpack:///./src/v1/client.polyfill.js","webpack:///./node_modules/intersection-observer/intersection-observer.js","webpack:///./node_modules/picturefill/dist/picturefill.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/core-js/index.js","webpack:///./node_modules/core-js/shim.js","webpack:///./node_modules/core-js/modules/es6.symbol.js","webpack:///./node_modules/core-js/modules/_enum-keys.js","webpack:///./node_modules/core-js/modules/es6.object.create.js","webpack:///./node_modules/core-js/modules/es6.object.define-property.js","webpack:///./node_modules/core-js/modules/es6.object.define-properties.js","webpack:///./node_modules/core-js/modules/es6.object.get-own-property-descriptor.js","webpack:///./node_modules/core-js/modules/es6.object.get-prototype-of.js","webpack:///./node_modules/core-js/modules/es6.object.keys.js","webpack:///./node_modules/core-js/modules/es6.object.get-own-property-names.js","webpack:///./node_modules/core-js/modules/es6.object.freeze.js","webpack:///./node_modules/core-js/modules/es6.object.seal.js","webpack:///./node_modules/core-js/modules/es6.object.prevent-extensions.js","webpack:///./node_modules/core-js/modules/es6.object.is-frozen.js","webpack:///./node_modules/core-js/modules/es6.object.is-sealed.js","webpack:///./node_modules/core-js/modules/es6.object.is-extensible.js","webpack:///./node_modules/core-js/modules/es6.object.assign.js","webpack:///./node_modules/core-js/modules/es6.object.is.js","webpack:///./node_modules/core-js/modules/es6.object.set-prototype-of.js","webpack:///./node_modules/core-js/modules/es6.object.to-string.js","webpack:///./node_modules/core-js/modules/es6.function.bind.js","webpack:///./node_modules/core-js/modules/es6.function.name.js","webpack:///./node_modules/core-js/modules/es6.function.has-instance.js","webpack:///./node_modules/core-js/modules/es6.parse-int.js","webpack:///./node_modules/core-js/modules/es6.parse-float.js","webpack:///./node_modules/core-js/modules/es6.number.constructor.js","webpack:///./node_modules/core-js/modules/es6.number.to-fixed.js","webpack:///./node_modules/core-js/modules/es6.number.to-precision.js","webpack:///./node_modules/core-js/modules/es6.number.epsilon.js","webpack:///./node_modules/core-js/modules/es6.number.is-finite.js","webpack:///./node_modules/core-js/modules/es6.number.is-integer.js","webpack:///./node_modules/core-js/modules/es6.number.is-nan.js","webpack:///./node_modules/core-js/modules/es6.number.is-safe-integer.js","webpack:///./node_modules/core-js/modules/es6.number.max-safe-integer.js","webpack:///./node_modules/core-js/modules/es6.number.min-safe-integer.js","webpack:///./node_modules/core-js/modules/es6.number.parse-float.js","webpack:///./node_modules/core-js/modules/es6.number.parse-int.js","webpack:///./node_modules/core-js/modules/es6.math.acosh.js","webpack:///./node_modules/core-js/modules/es6.math.asinh.js","webpack:///./node_modules/core-js/modules/es6.math.atanh.js","webpack:///./node_modules/core-js/modules/es6.math.cbrt.js","webpack:///./node_modules/core-js/modules/es6.math.clz32.js","webpack:///./node_modules/core-js/modules/es6.math.cosh.js","webpack:///./node_modules/core-js/modules/es6.math.expm1.js","webpack:///./node_modules/core-js/modules/es6.math.fround.js","webpack:///./node_modules/core-js/modules/es6.math.hypot.js","webpack:///./node_modules/core-js/modules/es6.math.imul.js","webpack:///./node_modules/core-js/modules/es6.math.log10.js","webpack:///./node_modules/core-js/modules/es6.math.log1p.js","webpack:///./node_modules/core-js/modules/es6.math.log2.js","webpack:///./node_modules/core-js/modules/es6.math.sign.js","webpack:///./node_modules/core-js/modules/es6.math.sinh.js","webpack:///./node_modules/core-js/modules/es6.math.tanh.js","webpack:///./node_modules/core-js/modules/es6.math.trunc.js","webpack:///./node_modules/core-js/modules/es6.string.from-code-point.js","webpack:///./node_modules/core-js/modules/es6.string.raw.js","webpack:///./node_modules/core-js/modules/es6.string.trim.js","webpack:///./node_modules/core-js/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/modules/es6.string.code-point-at.js","webpack:///./node_modules/core-js/modules/es6.string.ends-with.js","webpack:///./node_modules/core-js/modules/es6.string.includes.js","webpack:///./node_modules/core-js/modules/es6.string.repeat.js","webpack:///./node_modules/core-js/modules/es6.string.starts-with.js","webpack:///./node_modules/core-js/modules/es6.string.anchor.js","webpack:///./node_modules/core-js/modules/es6.string.big.js","webpack:///./node_modules/core-js/modules/es6.string.blink.js","webpack:///./node_modules/core-js/modules/es6.string.bold.js","webpack:///./node_modules/core-js/modules/es6.string.fixed.js","webpack:///./node_modules/core-js/modules/es6.string.fontcolor.js","webpack:///./node_modules/core-js/modules/es6.string.fontsize.js","webpack:///./node_modules/core-js/modules/es6.string.italics.js","webpack:///./node_modules/core-js/modules/es6.string.link.js","webpack:///./node_modules/core-js/modules/es6.string.small.js","webpack:///./node_modules/core-js/modules/es6.string.strike.js","webpack:///./node_modules/core-js/modules/es6.string.sub.js","webpack:///./node_modules/core-js/modules/es6.string.sup.js","webpack:///./node_modules/core-js/modules/es6.date.now.js","webpack:///./node_modules/core-js/modules/es6.date.to-json.js","webpack:///./node_modules/core-js/modules/es6.date.to-iso-string.js","webpack:///./node_modules/core-js/modules/_date-to-iso-string.js","webpack:///./node_modules/core-js/modules/es6.date.to-string.js","webpack:///./node_modules/core-js/modules/es6.date.to-primitive.js","webpack:///./node_modules/core-js/modules/_date-to-primitive.js","webpack:///./node_modules/core-js/modules/es6.array.is-array.js","webpack:///./node_modules/core-js/modules/es6.array.from.js","webpack:///./node_modules/core-js/modules/es6.array.of.js","webpack:///./node_modules/core-js/modules/es6.array.join.js","webpack:///./node_modules/core-js/modules/es6.array.slice.js","webpack:///./node_modules/core-js/modules/es6.array.sort.js","webpack:///./node_modules/core-js/modules/es6.array.for-each.js","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/core-js/modules/es6.array.map.js","webpack:///./node_modules/core-js/modules/es6.array.filter.js","webpack:///./node_modules/core-js/modules/es6.array.some.js","webpack:///./node_modules/core-js/modules/es6.array.every.js","webpack:///./node_modules/core-js/modules/es6.array.reduce.js","webpack:///./node_modules/core-js/modules/es6.array.reduce-right.js","webpack:///./node_modules/core-js/modules/es6.array.index-of.js","webpack:///./node_modules/core-js/modules/es6.array.last-index-of.js","webpack:///./node_modules/core-js/modules/es6.array.copy-within.js","webpack:///./node_modules/core-js/modules/es6.array.fill.js","webpack:///./node_modules/core-js/modules/es6.array.find.js","webpack:///./node_modules/core-js/modules/es6.array.find-index.js","webpack:///./node_modules/core-js/modules/es6.array.species.js","webpack:///./node_modules/core-js/modules/es6.regexp.constructor.js","webpack:///./node_modules/core-js/modules/es6.regexp.to-string.js","webpack:///./node_modules/core-js/modules/es6.regexp.match.js","webpack:///./node_modules/core-js/modules/es6.regexp.replace.js","webpack:///./node_modules/core-js/modules/es6.regexp.search.js","webpack:///./node_modules/core-js/modules/es6.regexp.split.js","webpack:///./node_modules/core-js/modules/es6.promise.js","webpack:///./node_modules/core-js/modules/es6.weak-set.js","webpack:///./node_modules/core-js/modules/es6.typed.array-buffer.js","webpack:///./node_modules/core-js/modules/es6.typed.data-view.js","webpack:///./node_modules/core-js/modules/es6.typed.int8-array.js","webpack:///./node_modules/core-js/modules/es6.typed.uint8-array.js","webpack:///./node_modules/core-js/modules/es6.typed.uint8-clamped-array.js","webpack:///./node_modules/core-js/modules/es6.typed.int16-array.js","webpack:///./node_modules/core-js/modules/es6.typed.uint16-array.js","webpack:///./node_modules/core-js/modules/es6.typed.int32-array.js","webpack:///./node_modules/core-js/modules/es6.typed.uint32-array.js","webpack:///./node_modules/core-js/modules/es6.typed.float32-array.js","webpack:///./node_modules/core-js/modules/es6.typed.float64-array.js","webpack:///./node_modules/core-js/modules/es6.reflect.apply.js","webpack:///./node_modules/core-js/modules/es6.reflect.construct.js","webpack:///./node_modules/core-js/modules/es6.reflect.define-property.js","webpack:///./node_modules/core-js/modules/es6.reflect.delete-property.js","webpack:///./node_modules/core-js/modules/es6.reflect.enumerate.js","webpack:///./node_modules/core-js/modules/es6.reflect.get.js","webpack:///./node_modules/core-js/modules/es6.reflect.get-own-property-descriptor.js","webpack:///./node_modules/core-js/modules/es6.reflect.get-prototype-of.js","webpack:///./node_modules/core-js/modules/es6.reflect.has.js","webpack:///./node_modules/core-js/modules/es6.reflect.is-extensible.js","webpack:///./node_modules/core-js/modules/es6.reflect.own-keys.js","webpack:///./node_modules/core-js/modules/es6.reflect.prevent-extensions.js","webpack:///./node_modules/core-js/modules/es6.reflect.set.js","webpack:///./node_modules/core-js/modules/es6.reflect.set-prototype-of.js","webpack:///./node_modules/core-js/modules/es7.array.includes.js","webpack:///./node_modules/core-js/modules/es7.array.flat-map.js","webpack:///./node_modules/core-js/modules/es7.array.flatten.js","webpack:///./node_modules/core-js/modules/es7.string.at.js","webpack:///./node_modules/core-js/modules/es7.string.pad-start.js","webpack:///./node_modules/core-js/modules/es7.string.pad-end.js","webpack:///./node_modules/core-js/modules/es7.string.trim-left.js","webpack:///./node_modules/core-js/modules/es7.string.trim-right.js","webpack:///./node_modules/core-js/modules/es7.string.match-all.js","webpack:///./node_modules/core-js/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/core-js/modules/es7.symbol.observable.js","webpack:///./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js","webpack:///./node_modules/core-js/modules/es7.object.values.js","webpack:///./node_modules/core-js/modules/es7.object.entries.js","webpack:///./node_modules/core-js/modules/es7.object.define-getter.js","webpack:///./node_modules/core-js/modules/es7.object.define-setter.js","webpack:///./node_modules/core-js/modules/es7.object.lookup-getter.js","webpack:///./node_modules/core-js/modules/es7.object.lookup-setter.js","webpack:///./node_modules/core-js/modules/es7.map.to-json.js","webpack:///./node_modules/core-js/modules/es7.set.to-json.js","webpack:///./node_modules/core-js/modules/es7.map.of.js","webpack:///./node_modules/core-js/modules/es7.set.of.js","webpack:///./node_modules/core-js/modules/es7.weak-map.of.js","webpack:///./node_modules/core-js/modules/es7.weak-set.of.js","webpack:///./node_modules/core-js/modules/es7.map.from.js","webpack:///./node_modules/core-js/modules/es7.set.from.js","webpack:///./node_modules/core-js/modules/es7.weak-map.from.js","webpack:///./node_modules/core-js/modules/es7.weak-set.from.js","webpack:///./node_modules/core-js/modules/es7.global.js","webpack:///./node_modules/core-js/modules/es7.system.global.js","webpack:///./node_modules/core-js/modules/es7.error.is-error.js","webpack:///./node_modules/core-js/modules/es7.math.clamp.js","webpack:///./node_modules/core-js/modules/es7.math.deg-per-rad.js","webpack:///./node_modules/core-js/modules/es7.math.degrees.js","webpack:///./node_modules/core-js/modules/es7.math.fscale.js","webpack:///./node_modules/core-js/modules/es7.math.iaddh.js","webpack:///./node_modules/core-js/modules/es7.math.isubh.js","webpack:///./node_modules/core-js/modules/es7.math.imulh.js","webpack:///./node_modules/core-js/modules/es7.math.rad-per-deg.js","webpack:///./node_modules/core-js/modules/es7.math.radians.js","webpack:///./node_modules/core-js/modules/es7.math.scale.js","webpack:///./node_modules/core-js/modules/es7.math.umulh.js","webpack:///./node_modules/core-js/modules/es7.math.signbit.js","webpack:///./node_modules/core-js/modules/es7.promise.finally.js","webpack:///./node_modules/core-js/modules/es7.promise.try.js","webpack:///./node_modules/core-js/modules/es7.reflect.define-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.delete-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-metadata-keys.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-own-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.get-own-metadata-keys.js","webpack:///./node_modules/core-js/modules/es7.reflect.has-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.has-own-metadata.js","webpack:///./node_modules/core-js/modules/es7.reflect.metadata.js","webpack:///./node_modules/core-js/modules/es7.asap.js","webpack:///./node_modules/core-js/modules/es7.observable.js","webpack:///./node_modules/core-js/modules/web.timers.js","webpack:///./node_modules/core-js/modules/web.immediate.js","webpack:///./node_modules/core-js/modules/web.dom.iterable.js","webpack:///./node_modules/core-js/modules/core.dict.js","webpack:///./node_modules/core-js/modules/_keyof.js","webpack:///./node_modules/core-js/modules/core.get-iterator.js","webpack:///./node_modules/core-js/modules/core.delay.js","webpack:///./node_modules/core-js/modules/core.function.part.js","webpack:///./node_modules/core-js/modules/core.object.is-object.js","webpack:///./node_modules/core-js/modules/core.object.classof.js","webpack:///./node_modules/core-js/modules/core.object.define.js","webpack:///./node_modules/core-js/modules/core.object.make.js","webpack:///./node_modules/core-js/modules/core.number.iterator.js","webpack:///./node_modules/core-js/modules/core.regexp.escape.js","webpack:///./node_modules/core-js/modules/core.string.escape-html.js","webpack:///./node_modules/core-js/modules/core.string.unescape-html.js","webpack:///./node_modules/lottie-web/build/player/lottie_light.js","webpack:///./src/v1/components/foreground/map/locations sync ^\\.\\/.*\\.json$","webpack:///./node_modules/preact/dist/preact.mjs","webpack:///./node_modules/@nrk/dh-utils/dist/module/array.js","webpack:///./node_modules/@nrk/dh-utils/dist/module/bem.js","webpack:///./src/lib/getContextId.ts","webpack:///./src/lib/provider.tsx","webpack:///./src/v1/lib/preact-pure-component.tsx","webpack:///./src/v1/components/foreground/timing/index.tsx","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/lib/preact-pure-component.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/Byline/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/ChatLog/lib/image-url.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/ChatLog/Avatar/AvatarImage/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/ChatLog/Avatar/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/ChatLog/Message/ImageMessage/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/ChatLog/Message/TextMessage/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/ChatLog/Message/ImagesMessage/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/ChatLog/Message/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/ChatLog/Date/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/ChatLog/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/EmailList/HtmlContent/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/EmailList/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/Figure/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/Heading/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/List/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/List/ListItem.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/Paragraph/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/PullQuote/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/video/Video/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/video/ResponsiveVideo/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/serum/SerumImage/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/serum/helpers.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/serum/SerumResponsivePicture/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/serum/SerumSmartPicture/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/serum/lazy/SerumLazyResponsivePicture/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/Slideshow/Slide.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/Slideshow/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/video/SmartVideo/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/video/VideoPlayer/Scrubber.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/video/VideoPlayer/TogglePlayButton.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/video/VideoPlayer/ToggleMuteButton.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/video/VideoPlayer/index.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/lib/warn.js","webpack:///./node_modules/@nrk/dh-feature-components/dist/module/ViewportIntersections/index.js","webpack:///./src/v1/components/foreground/text/index.tsx","webpack:///./node_modules/@nrk/feature-tests/dist/feature-tests.module.js","webpack:///./src/v1/components/lottie/index.tsx","webpack:///./src/v1/components/foreground/intro/intro_text.tsx","webpack:///./src/v1/components/foreground/intro/index.tsx","webpack:///./src/v1/components/foreground/blockquote/index.tsx","webpack:///./src/v1/components/foreground/byline/category/index.tsx","webpack:///./src/v1/components/foreground/byline/index.tsx","webpack:///./src/v1/lib/isIOSSafari.ts","webpack:///./src/v1/components/foreground/linkout/card/index.tsx","webpack:///./src/v1/components/foreground/linkout/link/index.tsx","webpack:///./src/v1/components/foreground/linkout/index.tsx","webpack:///./src/v1/components/foreground/map/index.tsx","webpack:///./src/v1/components/foreground/chapter/index.tsx","webpack:///./src/v1/components/foreground/bylineinline/index.tsx","webpack:///./src/v1/components/foreground/index.tsx","webpack:///./src/v1/lib/isIe.ts","webpack:///./src/v1/components/background/image/index.tsx","webpack:///./src/v1/lib/html5video.tsx","webpack:///./src/v1/lib/getVideo.ts","webpack:///./src/v1/components/background/video/index.tsx","webpack:///./src/v1/components/background/black/index.tsx","webpack:///./src/v1/components/background/photocredit/index.tsx","webpack:///./src/v1/components/background/index.tsx","webpack:///./src/v1/components/section/index.tsx","webpack:///./src/v1/components/source/show-source-button/index.tsx","webpack:///./src/v1/components/source/modal/index.tsx","webpack:///./src/v1/components/source/index.tsx","webpack:///./src/v1/components/logo/index.tsx","webpack:///./src/v1/components/App.tsx","webpack:///./src/v1/lib/vh-fix/throttle.js","webpack:///./src/v1/lib/vh-fix/listener.js","webpack:///./src/v1/client.tsx","webpack:///./node_modules/@nrk/dh-utils/dist/module/string.js","webpack:///./src/lib/errorReporting.ts","webpack:///./src/v1/lib/vh-fix/check-has-vh-bug.ts"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","global","require","core","hide","redefine","ctx","$export","type","source","own","out","exp","IS_FORCED","F","IS_GLOBAL","G","IS_PROTO","P","IS_BIND","B","target","S","expProto","undefined","Function","U","W","R","isObject","it","TypeError","window","Math","self","__g","_typeof","exec","e","store","uid","USE_SYMBOL","hasOwn","classNames","classes","arguments","length","arg","argType","push","Array","isArray","inner","apply","join","default","define","__WEBPACK_AMD_DEFINE_RESULT__","toInteger","min","anObject","IE8_DOM_DEFINE","toPrimitive","dP","f","O","Attributes","a","defined","version","__e","IObject","createDesc","has","SRC","$toString","TPL","split","inspectSource","val","safe","isFunction","String","this","pIE","toIObject","gOPD","getOwnPropertyDescriptor","toObject","IE_PROTO","ObjectProto","getPrototypeOf","constructor","fails","quot","createHTML","string","tag","attribute","p1","replace","NAME","test","toLowerCase","factory","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","isPolopolyIdRegex","isPolopolyId","id","widths","ratios","qualities","_baseUrl","hasOption","option","createImageUrl","options","polopolyId","width","ratio","quality","Error","args","supportedRatios","includes","isValidRatio","toString","supportedQualities","isValidQuality","number","Number","isInteger","isNumber","isSupportedWidth","closestWidth","goal","targets","isValidGoal","isValid","isValidTargets","reduce","prev","curr","abs","getClosestNumber","_ref","url","queryString","_ref2","createQueryString","createUrl","background","backgroundElement","active","delayIn","delayOut","fastDelayIn","fastDelayOut","klimakartDelayIn","slowOutFade","slowInFade","zoomIn","zoomMask","zoomInDesktop","aFunction","fn","that","b","slice","ceil","floor","isNaN","method","valueOf","KEY","toLength","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$this","callbackfn","res","index","result","text","textLoaded","card","nomargintop","prologue","green","center","textwrapper","textShadow","loaded","neonBlink","picture","img","ie","ieActive","$keys","enumBugKeys","keys","dPs","Empty","createDict","iframeDocument","iframe","style","display","appendChild","src","contentWindow","document","open","write","lt","close","Properties","LIBRARY","$typed","$buffer","anInstance","propertyDesc","redefineAll","toIndex","toAbsoluteIndex","classof","isArrayIter","gOPN","getIterFn","wks","createArrayMethod","createArrayIncludes","speciesConstructor","ArrayIterators","Iterators","$iterDetect","setSpecies","arrayFill","arrayCopyWithin","$DP","$GOPD","RangeError","Uint8Array","ArrayProto","$ArrayBuffer","ArrayBuffer","$DataView","DataView","arrayForEach","arrayFilter","arraySome","arrayEvery","arrayFind","arrayFindIndex","arrayIncludes","arrayIndexOf","arrayValues","values","arrayKeys","arrayEntries","entries","arrayLastIndexOf","lastIndexOf","arrayReduce","arrayReduceRight","reduceRight","arrayJoin","arraySort","sort","arraySlice","arrayToString","arrayToLocaleString","toLocaleString","ITERATOR","TAG","TYPED_CONSTRUCTOR","DEF_CONSTRUCTOR","ALL_CONSTRUCTORS","CONSTR","TYPED_ARRAY","TYPED","VIEW","$map","allocate","LITTLE_ENDIAN","Uint16Array","buffer","FORCED_SET","set","toOffset","BYTES","offset","validate","C","speciesFromList","list","fromList","addGetter","internal","_d","$from","step","iterator","aLen","mapfn","mapping","iterFn","next","done","$of","TO_LOCALE_BUG","$toLocaleString","proto","copyWithin","start","every","fill","filter","find","predicate","findIndex","forEach","indexOf","searchElement","separator","map","reverse","middle","some","comparefn","subarray","begin","end","$begin","byteOffset","BYTES_PER_ELEMENT","$slice","$set","arrayLike","len","$iterators","isTAIndex","$getDesc","$setDesc","desc","configurable","writable","$TypedArrayPrototype$","wrapper","CLAMPED","GETTER","SETTER","TypedArray","Base","TAC","FORCED","ABV","TypedArrayPrototype","addElement","data","v","round","setter","$offset","$length","byteLength","klass","$len","iter","concat","$nativeIterator","CORRECT_ITER_NAME","$iterator","of","from","Map","shared","getOrCreateMetadataMap","targetKey","targetMetadata","keyMetadata","MetadataKey","metadataMap","MetadataValue","_","foreground","introCard","intro","innerWrapper","left","right","lessMarginBottom","lessMarginTop","bitmap","META","setDesc","isExtensible","FREEZE","preventExtensions","setMeta","w","meta","NEED","fastKey","getWeak","onFreeze","cof","ARG","T","tryGet","callee","UNSCOPABLES","BREAK","RETURN","iterable","line","mapText","tilGamvik","svalbard","imgWrapper","image","role","modal","button","content","closeCircle","px","random","max","hiddenKeys","getOwnPropertyNames","DESCRIPTORS","SPECIES","Constructor","forbiddenField","ratioPart","chapterNumber","dot","filledDot","def","stat","spaces","space","ltrim","RegExp","rtrim","exporter","ALIAS","FORCE","trim","_t","timing","linkWrapper","header","links","propertyIsEnumerable","getIteratorMethod","ignoreCase","multiline","unicode","sticky","D","copyright","IS_INCLUDES","el","fromIndex","getOwnPropertySymbols","TO_STRING","pos","charCodeAt","charAt","$iterCreate","setToStringTag","BUGGY","returnThis","DEFAULT","IS_SET","methods","IteratorPrototype","getMethod","kind","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","descriptor","MATCH","isRegExp","SAFE_CLOSING","riter","skipClosing","arr","builtinExec","regexpExec","REPLACE_SUPPORTS_NAMED_GROUPS","re","groups","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","fns","nativeMethod","regexp","str","arg2","forceStringMethod","strfn","rxfn","navigator","userAgent","forOf","inheritIfRequired","common","IS_WEAK","ADDER","fixMethod","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","clear","getConstructor","setStrong","Typed","TypedArrayConstructors","K","__defineSetter__","COLLECTION","A","cb","mapFn","nextItem","root","app","textwrapperIntro","heading","lead","publishedAt","updatedAt","link","linkText","passive","addEventListener","removeEventListener","platform","u","allowTouchMove","event","touches","preventDefault","setTimeout","body","paddingRight","overflow","disableBodyScroll","console","error","targetElement","ontouchstart","targetTouches","clientY","ontouchmove","scrollTop","scrollHeight","clientHeight","stopPropagation","reserveScrollBarGap","innerWidth","documentElement","clientWidth","clearAllBodyScrollLocks","enableBodyScroll","is","createElement","wksExt","$Symbol","getKeys","gOPS","$assign","assign","k","getSymbols","isEnum","j","check","setPrototypeOf","buggy","__proto__","un","count","Infinity","sign","x","$expm1","expm1","searchString","$defineProperty","original","endPos","addToUnscopables","iterated","_i","_k","Arguments","regexpFlags","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","NPCG_INCLUDED","lastIndex","reCopy","match","at","defer","channel","port","invoke","html","cel","process","setTask","setImmediate","clearTask","clearImmediate","MessageChannel","Dispatch","counter","queue","run","listener","nextTick","now","port2","port1","onmessage","postMessage","importScripts","removeChild","macrotask","Observer","MutationObserver","WebKitMutationObserver","Promise","isNode","head","last","notify","flush","parent","domain","exit","enter","standalone","resolve","promise","then","toggle","node","createTextNode","observe","characterData","task","reject","$$resolve","$$reject","PROTOTYPE","WRONG_INDEX","BaseBuffer","pow","log","LN2","$BUFFER","$LENGTH","$OFFSET","packIEEE754","mLen","nBytes","eLen","eMax","eBias","rt","unpackIEEE754","nBits","NaN","unpackI32","bytes","packI8","packI16","packI32","packF64","packF32","view","isLittleEndian","intIndex","_b","pack","conversion","ArrayBufferProto","$setInt8","setInt8","getInt8","setUint8","bufferLength","getUint8","getInt16","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","Reflect","ownKeys","regExp","replacer","part","cardActive","video","videoElement","black","solidColor","photocredit","buttonActive","logo","names","defineProperties","windowNames","getWindowNames","y","factories","partArgs","bound","construct","$parseInt","parseInt","$trim","ws","hex","radix","$parseFloat","parseFloat","msg","isFinite","log1p","EPSILON","EPSILON32","MAX32","MIN32","fround","$abs","$sign","roundTiesToEven","ret","memo","isRight","to","inc","forced","flags","newPromiseCapability","promiseCapability","strong","entry","getEntry","$iterDefine","SIZE","_f","_l","delete","add","InternalMap","each","weak","uncaughtFrozenStore","ufstore","tmp","$WeakMap","freeze","$has","UncaughtFrozenStore","findUncaughtFrozen","splice","IS_CONCAT_SPREADABLE","flattenIntoArray","sourceLen","depth","mapper","thisArg","element","spreadable","targetIndex","sourceIndex","repeat","maxLength","fillString","stringLength","fillStr","intMaxLength","fillLen","stringFiller","isEntries","scale","inLow","inHigh","outLow","outHigh","isIterable","path","pargs","holder","mixin","__webpack_amd_options__","doc","doScroll","readyState","shift","definition","ga","createGoogleAnalyticsTracker","gaPropertyId","context","g","title","publishedDate","referrer","dimension1","dimension2","dimension3","getFullYear","dimension4","getMonth","dimension5","getDate","dimension6","dimension7","dimension10","category","action","trackingId","cookieDomain","eventCategory","eventAction","eventLabel","label","eventValue","nonInteraction","fieldsObject","setInterval","clearInterval","sendEvent","register","time","Date","message","dryRun","parseStack","errorRegister","filename","lineno","colno","column","sendErrorReport","stackTrace","reason","JSON","stringify","isInRegisterWithinRange","addErrorToRegister","XMLHttpRequest","setRequestHeader","send","SimpleErrorReport","tail","quote","__webpack_exports__","IntersectionObserverEntry","intersectionRatio","registry","IntersectionObserver","THROTTLE_TIMEOUT","POLL_INTERVAL","USE_MUTATION_OBSERVER","_observationTargets","item","nodeType","_registerInstance","_monitorIntersections","_checkForIntersections","unobserve","_unmonitorIntersections","_unregisterInstance","disconnect","takeRecords","records","_queuedEntries","_initThresholds","opt_threshold","threshold","_parseRootMargin","opt_rootMargin","margins","margin","parts","unit","_monitoringIntersections","_monitoringInterval","addEvent","_domObserver","attributes","childList","subtree","removeEvent","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","top","bottom","height","targetRect","getBoundingClientRect","rootContainsTarget","_rootContainsTarget","oldEntry","intersectionRect","_computeTargetAndRootIntersection","newEntry","performance","boundingClientRect","rootBounds","_hasCrossedThreshold","isIntersecting","_callback","getComputedStyle","getParentNode","atRoot","parentRect","parentComputedStyle","computeRectIntersection","_expandRectByRootMargin","rect","_rootMarginValues","newRect","oldRatio","newRatio","thresholds","containsDeep","targetArea","intersectionArea","toFixed","callback","opt_options","timeout","timer","throttle","rootMargin","opt_useCapture","attachEvent","detatchEvent","rect1","rect2","err","child","parentNode","host","ua","HTMLPictureElement","$1","dummySrc","fixRespimg","sizes","nodeName","toUpperCase","cloneNode","insertBefore","firstElementChild","_pfLastSize","offsetWidth","findPictureImgs","imgs","querySelectorAll","onResize","clearTimeout","mq","matchMedia","init","addListener","srcset","eminpx","alwaysCheckWDescriptor","evalId","pf","isSupportTestReady","noop","getImgAttr","getAttribute","setImgAttr","setAttribute","removeImgAttr","removeAttribute","docElem","types","cfg","algorithm","supportAbort","curSrcProp","regWDesc","regSize","setOptions","picturefillCFG","fsCss","isVwDirty","cssCache","sizeLengthCache","DPR","devicePixelRatio","units","in","anchor","alreadyRun","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","on","obj","evt","capture","memoize","cache","input","isSpace","evalCSS","regLength","buildStr","css","parsedLength","setResolution","candidate","sizesattr","cWidth","calcListLength","picturefill","opt","elements","plen","qsa","reevaluate","reselect","sel","selShort","setupRun","fillImg","teardownRun","chooseLowRes","lowerValue","higherValue","dprValue","isCached","bonusFactor","bonus","meanDensity","sqrt","ascendingSort","getCandidateForSrc","candidates","parseSet","makeUrl","warn","implementation","hasFeature","getTime","substr","supSrcset","supSizes","supPicture","image2","complete","width1","onload","onerror","setSize","href","matchesMedia","matches","media","mMQ","calcLength","sourceSizeValue","supportsType","parseSize","sourceSizeStr","cands","collectCharacters","regEx","chars","substring","descriptors","currentDescriptor","state","inputLength","parseDescriptors","h","lastChar","intVal","floatVal","pError","has1x","tokenize","parseSrcset","getEmValue","div","originalHTMLCSS","cssText","originalBodyCSS","sourceSizeListStr","uT","winningLength","strValue","unparsedSizesList","unparsedSizesListLength","unparsedSize","lastComponentValue","size","regexCssLengthWithUnits","regexCssCalc","isValidNonNegativeSourceSizeValue","chrctr","component","componentArray","listArray","parenDepth","inComment","pushComponent","pushComponentArray","parseComponentValues","pop","parseSizes","setRes","applySetCandidate","bestCandidate","curSrc","curCan","candidateSrc","abortCurSrc","imageData","dpr","sets","setSrcToCur","cached","setSrc","origWidth","getSet","parseSets","srcsetAttribute","imageSet","isWDescripor","srcsetParsed","hasPicture","pic","sources","getElementsByTagName","getAllSourceElements","supported","srcAttr","parsed","extreme","evaled","srcSetCandidates","matchingSet","evaluated","applyBestCandidate","innerHeight","vw","vh","em","rem","isDomReady","regReady","timerId","fillImgs","lastClientWidth","func","wait","timestamp","later","debounce","typeUri","Image","detectTypeSupport","webpackPolyfill","deprecate","paths","children","$fails","wksDefine","enumKeys","_create","gOPNExt","$JSON","_stringify","HIDDEN","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","USE_NATIVE","QObject","findChild","setSymbolDesc","protoDesc","wrap","sym","isSymbol","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","es6Symbols","wellKnownSymbols","for","keyFor","useSetter","useSimple","$replacer","symbols","$getPrototypeOf","$freeze","$seal","$preventExtensions","$isFrozen","$isSealed","$isExtensible","FProto","nameRE","HAS_INSTANCE","FunctionProto","$Number","BROKEN_COF","TRIM","toNumber","argument","third","maxCode","first","code","digits","aNumberValue","$toFixed","ERROR","multiply","c2","divide","numToString","acc","fractionDigits","z","x2","$toPrecision","toPrecision","precision","_isFinite","isSafeInteger","MAX_SAFE_INTEGER","MIN_SAFE_INTEGER","$acosh","acosh","MAX_VALUE","$asinh","asinh","$atanh","atanh","cbrt","clz32","LOG2E","cosh","hypot","value1","value2","sum","larg","$imul","imul","xn","yn","xl","yl","log10","LOG10E","log2","sinh","tanh","trunc","fromCharCode","$fromCodePoint","fromCodePoint","raw","callSite","tpl","$at","point","codePointAt","$endsWith","endsWith","endPosition","search","$startsWith","startsWith","color","toJSON","toISOString","pv","$toISOString","lz","num","getUTCFullYear","getUTCMilliseconds","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","DateProto","hint","createProperty","upTo","cloned","$sort","$forEach","STRICT","$filter","$some","$every","$reduce","$indexOf","NEGATIVE_ZERO","$find","$flags","$RegExp","CORRECT_NEW","tiRE","piRE","fiU","proxy","advanceStringIndex","regExpExec","$match","maybeCallNative","rx","fullUnicode","matchStr","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","maybeToString","REPLACE","$replace","searchValue","replaceValue","functionalReplace","results","accumulatedResult","nextSourcePosition","matched","position","captures","namedCaptures","replacerArgs","replacement","getSubstitution","tailPos","ch","sameValue","SEARCH","$search","previousLastIndex","callRegExpExec","$min","$push","SUPPORTS_Y","SPLIT","$split","internalSplit","limit","lastLength","output","lastLastIndex","splitLimit","separatorCopy","splitter","unicodeMatching","lim","q","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","microtask","newPromiseCapabilityModule","perform","promiseResolve","versions","v8","$Promise","empty","FakePromise","PromiseRejectionEvent","isThenable","isReject","_n","chain","_c","_v","ok","_s","reaction","exited","handler","fail","_h","onHandleUnhandled","onUnhandled","unhandled","isUnhandled","emit","onunhandledrejection","_a","onrejectionhandled","$reject","_w","$resolve","executor","onFulfilled","onRejected","catch","capability","all","remaining","$index","alreadyCalled","race","$isView","isView","fin","viewS","viewT","rApply","fApply","thisArgument","argumentsList","L","rConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","propertyKey","deleteProperty","Enumerate","enumerate","receiver","getProto","V","existingDescriptor","ownDesc","setProto","$includes","arraySpeciesCreate","flatMap","flatten","depthArg","$pad","padStart","padEnd","getFlags","RegExpProto","$RegExpStringIterator","_r","matchAll","getOwnPropertyDescriptors","getDesc","$values","__defineGetter__","__lookupGetter__","__lookupSetter__","isError","clamp","lower","upper","DEG_PER_RAD","PI","RAD_PER_DEG","degrees","radians","fscale","iaddh","x0","x1","y0","y1","$x0","$y0","isubh","imulh","$u","$v","u0","v0","u1","v1","umulh","signbit","finally","onFinally","try","metadata","toMetaKey","ordinaryDefineOwnMetadata","defineMetadata","metadataKey","metadataValue","deleteMetadata","ordinaryHasOwnMetadata","ordinaryGetOwnMetadata","getMetadata","ordinaryGetMetadata","Set","ordinaryOwnMetadataKeys","getMetadataKeys","ordinaryMetadataKeys","oKeys","pKeys","getOwnMetadata","getOwnMetadataKeys","hasMetadata","ordinaryHasMetadata","hasOwnMetadata","$metadata","asap","OBSERVABLE","cleanupSubscription","subscription","cleanup","subscriptionClosed","_o","closeSubscription","Subscription","observer","subscriber","SubscriptionObserver","unsubscribe","$Observable","subscribe","observable","items","Observable","MSIE","boundArgs","$task","TO_STRING_TAG","ArrayValues","DOMIterables","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","collections","explicit","Collection","keyOf","createDictMethod","Dict","findKey","createDictIter","DictIterator","dict","mapPairs","isDict","getIterator","partial","delay","make","$re","escape","&","<",">","\"","'","escapeHTML","&","<",">",""","'","unescapeHTML","expressionsPlugin","svgNS","locationHref","initialDefaultFrame","subframeEnabled","bm_pow","bm_sqrt","bm_floor","bm_min","BMMath","propertyNames","tOfVal","absArr","createSizedArray","defaultCurveSegments","degToRads","roundValues","flag","BMEnterFrameEvent","currentTime","totalTime","direction","BMCompleteEvent","BMCompleteLoopEvent","currentLoop","totalLoops","BMSegmentStartEvent","firstFrame","totalFrames","BMDestroyEvent","randomString","HSVtoRGB","RGBtoHSV","addSaturationToRGB","hsv","addBrightnessToRGB","addHueToRGB","rgbToHex","colorMap","BaseEvent","triggerEvent","eventName","_cbs","createTypedArray","Uint8ClampedArray","Float32Array","Int16Array","createNS","createElementNS","createTag","DynamicPropertyContainer","addDynamicProperty","prop","dynamicProperties","container","_isAnimated","iterateDynamicProperties","_mdf","getValue","initDynamicPropertyContainer","Matrix","_cos","cos","_sin","sin","_tan","tan","_rnd","reset","props","rotate","angle","mCos","mSin","rotateX","rotateY","rotateZ","shear","sx","sy","skew","ax","ay","skewFromAxis","sz","setTransform","translate","tx","ty","tz","transform","a2","b2","d2","e2","f2","g2","h2","i2","j2","k2","l2","m2","n2","o2","p2","_p","_identityCalculated","a1","b1","c1","d1","e1","f1","g1","h1","i1","j1","k1","l1","m1","n1","o1","isIdentity","_identity","equals","matr","clone","cloneFromProps","applyToPoint","applyToX","applyToY","applyToZ","inversePoint","pt","determinant","inversePoints","pts","retPts","applyToTriplePoints","pt1","pt2","pt3","p0","p4","p5","p12","p13","applyToPointArray","applyToPointStringified","toCSS","cssValue","roundMatrixProperty","to2dCSS","_e","pool","math","nodecrypto","chunks","rngname","startdenom","significance","mask","copy","mixkey","seed","smear","stringseed","tostring","shortseed","typ","entropy","randomBytes","crypto","msCrypto","getRandomValues","browser","plugins","screen","autoseed","arc4","keylen","me","prng","int32","quick","double","pass","is_math_call","BezierFactory","ob","nm","beziers","bezEasing","BezierEasing","NEWTON_ITERATIONS","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","kSplineTableSize","kSampleStepSize","float32ArraySupported","aA1","aA2","calcBezier","aT","getSlope","points","_mSampleValues","_precomputed","mX1","mY1","mX2","mY2","_precompute","_getTForX","_calcSampleValues","aX","mSampleValues","intervalStart","currentSample","lastSample","dist","guessForT","initialSlope","aGuessT","currentSlope","currentX","newtonRaphsonIterate","aA","aB","currentT","binarySubdivide","extendPrototype","destination","sourcePrototype","attr","lastTime","vendors","requestAnimationFrame","cancelAnimationFrame","currTime","timeToCall","bez","pointOnLine2D","y2","x3","y3","det1","getBezierLength","pt4","ptCoord","perc","ptDistance","curveSegments","addedLength","lastPoint","lengthData","bezier_length_pool","newElement","percents","lengths","PointData","partialLength","buildBezierData","storedData","keyData","ti","bezierName","bezierData","segmentLength","getDistancePerc","initPos","lengthPos","lPerc","dir","bezier_segment_points","getSegmentsLength","shapeData","segmentsLength","segments_length_pool","closed","pathV","pathO","pathI","_length","totalLength","getNewSegment","startPerc","endPerc","t0","t1","u0u0u0","t0u0u0_3","t0t0u0_3","t0t0t0","u0u0u1","t0u0u1_3","t0t0u1_3","t0t0t1","u0u1u1","t0u1u1_3","t0t1u1_3","t0t1t1","u1u1u1","t1u1u1_3","t1t1u1_3","t1t1t1","getPointInSegment","percent","ptX","ptY","pointOnLine3D","z1","z2","z3","diffDist","dist1","dist2","dist3","bezFunction","dataManager","findCompLayers","comps","layers","__used","parse","completeShapes","jLen","ks","convertPathsToAbsoluteValues","checkVersion","minimum","animVersionString","animVersion","checkText","minimumVersion","updateTextLayer","textLayer","documentData","iterateLayers","animationData","assets","checkChars","pathData","shapes","__converted","checkColors","iterateShapes","checkShapes","layerData","kLen","hasMask","maskProps","masksProperties","cl","completeText","fontManager","singleShape","moduleOb","completeData","__complete","completeLayers","completed","tt","td","refId","dataFunctionManager","FontManager","maxWaitingTime","emptyChar","combinedCharacters","setUpNode","font","family","fontFamily","innerHTML","fontSize","fontVariant","fontStyle","fontWeight","letterSpacing","createHelper","fontData","tHelper","fFamily","fStyle","fWeight","textContent","fClass","className","tCanvasHelper","getContext","Font","fonts","typekitLoaded","isLoaded","initTime","getCombinedCharacterCodes","addChars","found","addFonts","defs","fontArr","_pendingFonts","loadedSelector","shouldLoadFont","monoCase","sansCase","fPath","fOrigin","origin","rel","sc","helper","checkLoadedFonts","getCharData","char","getFontByName","fName","measureText","fontName","doubleSize","getComputedTextLength","singleSize","loadedCount","Typekit","load","async","PropertyFactory","initFrame","math_abs","interpolateValue","frameNum","caching","newValue","offsetTime","propType","nextKeyData","fnc","iterationIndex","keyframes","nextKeyTime","keyTime","ind","__fnct","getBezierEasing","segmentPerc","distanceInLine","lastFrame","_lastBezierData","_lastAddedLength","_lastPoint","outX","outY","inX","inY","keyValue","sh","quatStart","createQuaternion","quatEnd","quat","qx","qy","qz","qw","atan2","attitude","asin","bank","quaternionToEuler","omega","cosom","sinom","scale0","scale1","az","aw","bx","by","bz","bw","acos","slerp","c3","s1","s2","s3","getValueAtCurrentTime","comp","renderedFrame","endTime","_caching","renderResult","setVValue","multipliedValue","mult","processEffectsSequence","elem","globalData","frameId","effectsSequence","lock","_isFirstFrame","finalValue","kf","addEffect","effectFunction","ValueProperty","vel","MultiDimensionalProperty","KeyframedValueProperty","st","KeyframedMultidimensionalProperty","arrLen","getProp","TransformPropertyFactory","TransformProperty","pre","appliedTransformations","py","pz","ry","rz","or","sk","sa","_isDirty","applyToMatrix","mat","forceRender","precalculateMatrix","autoOriented","v2","frameRate","getValueAtTime","autoOrient","_addDynamicProperty","getTransformProperty","ShapePath","_maxLength","setPathData","setLength","point_pool","doubleArrayLength","setXYAt","setTripleAt","vX","vY","oX","oY","iX","iY","newPath","vertices","outPoints","inPoints","cnt","ShapePropertyFactory","interpolateShape","previousValue","keyPropS","keyPropE","isHold","vertexValue","resetShape","localShapeCollection","shape1","shape2","shapesEqual","shape_pool","releaseShapes","addShape","ShapeProperty","shapeCollection_pool","newShapeCollection","KeyframedShapeProperty","EllShapeProperty","convertEllToPath","s0","_cw","roundCorner","StarShapeProperty","ir","convertToPath","convertStarToPath","convertPolygonToPath","os","rad","roundness","perimSegment","numPts","longFlag","longRad","shortRad","longRound","shortRound","longPerimSegment","shortPerimSegment","currentAng","ox","oy","RectShapeProperty","convertRectToPath","cPoint","dataProp","ShapeModifiers","modifiers","registerModifier","getModifier","ShapeModifier","TrimModifier","RoundCornersModifier","RepeaterModifier","ShapeCollection","DashProperty","renderer","dataProps","dashStr","dashArray","dashoffset","GradientProperty","cLength","_cmdf","_omdf","_collapsable","checkCollapsable","_hasOpacity","initModifierProperties","addShapeToModifier","shape","setAsAnimated","processKeys","sValue","eValue","pathsData","calculateShapeEdges","shapeLength","totalModifierLength","segments","segmentOb","shapeSegments","shapeS","shapeE","releasePathsData","release","processShapes","shapePaths","totalShapeLength","edges","newShapesData","addShapes","lastShapeInCollection","lastShape","addPaths","newPaths","addSegment","shapePath","newShape","addSegmentFromArray","shapeSegment","currentLengthData","segmentCount","segment","rd","processPath","cloned_path","currentV","currentI","currentO","closerV","distance","newPosPerc","tr","so","eo","pMatrix","rMatrix","sMatrix","tMatrix","matrix","applyTransforms","inv","scaleX","scaleY","elemsData","_currentCopies","_elements","_groups","unshift","resetElements","_processed","cloneElements","newElements","changeGroupRender","renderFlag","_render","itemsTransform","cont","copies","group","ix","reloadShapes","offsetModulo","roundOffset","pProps","rProps","sProps","iteration","mProps","op","comparePoints","buildShapeString","pathNodes","shapeString","ImagePreloader","proxyImage","canvas","fillStyle","fillRect","imageLoaded","loadedAssets","totalImages","imagesLoadedCb","createImageData","assetData","assetsPath","original_path","imagePath","getAssetsPath","crossOrigin","_imageLoaded","loadAssets","images","_createImageData","setPath","setAssetsPath","getImage","destroy","featureSupport","maskType","filtersFactory","createFilter","filId","fil","createAlphaToLuminanceFilter","feColorMatrix","assetLoader","formatResponse","xhr","response","responseText","errorCallback","responseType","onreadystatechange","status","TextAnimatorProperty","textData","renderType","_hasMaskedPath","_frameId","_textData","_renderType","_elem","_animatorsData","_pathData","_moreOptions","alignment","renderedLetters","lettersChangedFlag","TextAnimatorDataProperty","animatorProps","defaultData","textAnimator_animatables","sw","fc","fh","fs","fb","TextSelectorProp","getTextSelectorProp","LetterProps","TextProperty","keysIndex","canResize","minimumFontSize","currentData","ascent","boxWidth","defaultBoxWidth","justifyOffset","lh","lineWidths","ls","ps","fillColorAnim","strokeColorAnim","strokeWidthAnim","yOffset","finalSize","finalText","finalLineHeight","copyData","searchProperty","completeTextData","searchProperties","maskManager","getMaskProperty","getMeasures","xPos","yPos","pathInfo","currentLength","currentPoint","pointInd","segmentInd","prevPoint","tanAngle","animators","matrixHelper","mHelper","renderedLettersCount","letters","tLength","pi","animatorSelector","letterValue","yOff","firstLine","offf","xPathPos","yPathPos","elemOpacity","letterSw","letterSc","letterFc","letterO","initPathPos","initSegmentInd","initPointInd","currentLine","letterM","letterP","defaultPropsArray","animatorJustifyOffset","animatorFirstCharOffset","justifyOffsetMult","isNewLine","getMult","anIndexes","totalChars","extra","an","animatorOffset","rot","atan","update","updated","setCurrentData","searchKeyframes","getKeyframeValue","_finalValue","currentValue","currentIndex","currentTextValue","textKeys","buildFinalText","charactersArray","newLineFlag","charData","anchorGrouping","currentSize","currentPos","lineWidth","maxLineWidth","styles","charCode","trackingOffset","currentHeight","boxHeight","lastSpaceIndex","currentChar","uncollapsedSpaces","animatorData","letterData","based","indexes","rn","newInd","currentInd","updateDocumentData","newData","dData","recalculate","canResizeFont","_canResize","setMinimumFontSize","_fontValue","_currentTextLength","finalS","finalE","xe","ne","textProperty","easer","tot","newCharsFlag","divisor","pool_factory","initialLength","_release","_clone","pooling","shapeCollection","BaseRenderer","SVGRenderer","animationItem","config","svgElement","maskElement","layerElement","renderConfig","preserveAspectRatio","imagePreserveAspectRatio","progressiveLoad","hideOnTransparent","viewBoxOnly","viewBoxSize","pendingElements","destroyed","rendererType","MaskElement","viewData","solidPath","expansor","feMorph","properties","currentMasks","layerId","maskRef","filterID","expan","lastPath","lastOperator","filterId","lastRadius","createLayerSolidPath","getShapeProp","invRect","drawPath","maskedElement","addRenderableComponent","HierarchyElement","FrameElement","TransformElement","RenderableElement","RenderableDOMElement","SVGStyleData","level","lvl","hd","pElem","msElem","SVGShapeData","transformers","caches","lStr","SVGStrokeStyleData","styleOb","SVGFillStyleData","SVGGradientFillStyleData","initGradientData","SVGGradientStrokeStyleData","checkLayers","ip","buildItem","checkPendingElements","createItem","layer","createImage","createComp","createSolid","createNull","createShape","createText","createCamera","buildAllItems","includeLayers","newLayers","setProjectInterface","pInterface","projectInterface","initItems","buildElementParenting","parentName","hierarchy","setAsParent","setHierarchy","addPendingElement","searchExtraCompositions","xt","initExpressions","registerComposition","setupGlobalData","animData","fontsContainer","getAssetData","imageLoader","imagePreloader","fr","compSize","NullElement","SVGShapeElement","SVGTextElement","IImageElement","SVGCompElement","ISolidElement","configAnimation","maskId","updateContainerSize","appendElementInPos","setMatte","checkParenting","renderFrame","currentFrame","prepareFrame","getBaseElement","nextElement","show","isFirstFrame","finalMat","finalTransform","mProp","getMaskelement","pathString","pathShapeValue","initHierarchy","_isParent","prepareProperties","isVisible","initTransform","_matMdf","_opMdf","ao","renderTransform","globalToLocal","transforms","ptNew","initRenderable","isInRange","hidden","isTransparent","renderableComponents","removeRenderableComponent","prepareRenderableFrame","checkLayerLimits","checkTransparency","renderRenderable","sourceRectAtTime","getLayerSize","ProxyFunction","createProxyFunction","initElement","initBaseData","initRendererElement","createContainerElements","createRenderableComponents","createContent","baseElement","renderElement","renderInnerContent","innerElem","destroyBaseElement","stops","setGradientData","setGradientOpacity","pathElement","gradientId","gfill","stop","gf","cst","opacityId","opFill","ms","ost","SVGElementsRenderer","_identityMatrix","_matrixHelper","createRenderFunction","renderFill","renderGradient","renderGradientStroke","renderStroke","renderPath","renderContentTransform","styleData","itemData","pathStringTransformed","redraw","iterations","lLen","styleElem","hasOpacity","attr1","attr2","cValues","oValues","ang","BaseElement","SVGBaseElement","IShapeElement","ITextElement","ICompElement","supports3d","tm","_placeholder","textSpans","shapesData","stylesList","shapeModifiers","itemsData","processedElements","animatedContents","prevViewData","SVGTintFilter","filterManager","matrixFilter","effectElements","feMergeNode","feMerge","SVGFillFilter","SVGStrokeEffect","initialized","SVGTritoneFilter","feComponentTransfer","feFuncR","feFuncG","feFuncB","SVGProLevelsFilter","createFeFunc","feFuncA","feFuncRComposed","feFuncGComposed","feFuncBComposed","SVGDropShadowEffect","feGaussianBlur","feOffset","feFlood","feComposite","originalNodeAdded","checkMasks","layerInterface","LayerExpressionInterface","registerMaskInterface","effectsInterface","EffectsExpressionInterface","createEffectsInterface","registerEffectsInterface","compInterface","CompExpressionInterface","shapeInterface","ShapeExpressionInterface","textInterface","TextExpressionInterface","blendModeEnums","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","getBlendMode","bm","setBlendMode","blendModeValue","sr","effectsManager","getType","matteElement","transformedElement","_sizeChanged","gg","layerElementParent","masker","maskGroup","maskGrouper","alphaRect","ln","cp","clipId","cpGroup","renderableEffectsManager","SVGEffects","addShapeToModifiers","isShapeInAnimatedModifiers","isAnimatedWithShape","renderModifiers","lcEnum","ljEnum","searchProcessedElement","addProcessedElement","textAnimator","buildNewText","createPathShape","shapeStr","_fontSize","applyTextPropertiesToMatrix","lineNumber","buildColor","colorData","emptyProp","timeRemapped","setElements","elems","getElements","destroyElements","assetPath","pr","setAttributeNS","textContainer","buildTextContents","textArray","textContents","currentTextContent","tSpan","usesGlyphs","cachedSpansLength","tElement","justify","textBox","getBBox","bbox","renderedLetter","textSpan","initSecondaryElement","identityMatrix","buildExpressionInterface","searchShapes","filterUniqueShapes","tempShapes","areAnimated","setShapesAsAnimated","createStyleElement","elementData","gradientConstructor","lc","lj","ml","addToAnimatedContents","createGroupElement","gr","createTransformElement","transformProperty","createShapeElement","ownTransformers","shapeProperty","setElementStyles","render","currentTransform","modifier","processedPos","ownStyles","ownModifiers","renderShape","animatedContent","colorBlack","colorWhite","opacity","initialize","groupPath","elemChildren","childNodes","pathMasker","dasharrayValue","getTotalLength","lineLength","color1","color2","color3","tableR","tableG","tableB","feFunc","getTableValue","inputBlack","inputWhite","gamma","outputBlack","outputWhite","colorValue","table","outputDelta","inputDelta","col","_svgMatteSymbols","_svgMatteMaskCounter","SVGMatte3Effect","filterElem","ef","filters","findSymbol","replaceInParent","symbolId","nextChild","useElem","setElementAsMask","symbol","animationManager","registeredAnimations","playingAnimationsNum","_stopped","_isFrozen","removeElement","ev","animItem","animation","isPaused","subtractPlayingCount","registerAnimation","AnimationItem","setupAnimation","setData","addPlayingCount","activate","resume","nowTime","elapsedTime","advanceTime","loadAnimation","params","setParams","setSpeed","setDirection","play","pause","togglePause","searchAnimations","animElements","getElementsByClassName","resize","goToAndStop","isFrame","unfreeze","getRegisteredAnimations","animations","currentRawFrame","frameMult","playSpeed","playDirection","playCount","autoplay","loop","animationID","timeCompleted","segmentPos","_idle","_completedLoop","animType","CanvasRenderer","rendererSettings","HybridRenderer","autoloadSegments","fileName","trigger","wrapperAttributes","getNamedItem","prerender","loadNextSegment","segmentPath","loadSegments","imagesLoaded","checkLoaded","preloadImages","updaFrameModifier","waitForFontsLoaded","gotoFrame","setSubframe","setCurrentRawFrameValue","frameModifier","goToAndPlay","nextValue","_isComplete","checkSegments","adjustSegment","setSegment","pendingFrame","playSegments","forceFlag","resetSegments","onEnterFrame","onLoopComplete","onComplete","onSegmentStart","onDestroy","getPath","getDuration","lottiejs","setLocationHref","setSubframeRendering","setQuality","inBrowser","installPlugin","plugin","__getFactory","scripts","myScript","variable","vars","pair","decodeURIComponent","getQueryVariable","readyStateCheckInterval","./breen.json","./kongsvinger.json","./lauvmakk.json","./lofoten.json","./odal.json","./oppland.json","./oslo.json","./palsmyr.json","./reineier.json","./slinde.json","./tilgamvik.json","./vega.json","webpackContext","req","webpackContextResolve","VNode","preact_options","stack","EMPTY_CHILDREN","lastSimple","simple","vnode","extend","IS_NON_DIMENSIONAL","enqueueRender","_dirty","debounceRendering","rerender","renderComponent","isSameNodeType","hydrating","splitText","_componentConstructor","isNamedNode","normalizedNodeName","getNodeProps","defaultProps","removeNode","setAccessor","old","isSvg","__html","useCapture","eventProxy","_listeners","removeAttributeNS","mounts","diffLevel","isSvgMode","flushMounts","afterMount","componentDidMount","diff","dom","mountAll","componentRoot","ownerSVGElement","idiff","prevSvgMode","_component","nodeValue","replaceChild","recollectNodeTree","vnodeName","originalComponent","oldDom","isDirectOwner","isOwner","_parentComponent","setComponentProps","base","unmountComponent","createComponent","nextBase","buildComponentFromVNode","createNode","firstChild","vchildren","nextSibling","isHydrating","vchild","originalChildren","keyed","keyedLen","childrenLen","vlen","_child","__key","innerDiffNode","dangerouslySetInnerHTML","attrs","diffAttributes","unmountOnly","ref","removeChildren","lastChild","previousSibling","recyclerComponents","Ctor","inst","preact_Component","doRender","renderMode","_disable","__ref","getDerivedStateFromProps","componentWillMount","componentWillReceiveProps","prevContext","prevProps","syncComponentUpdates","isChild","rendered","cbase","previousProps","previousState","prevState","previousContext","isUpdate","initialBase","initialChildComponent","skip","snapshot","shouldComponentUpdate","componentWillUpdate","getChildContext","getSnapshotBeforeUpdate","toUnmount","childComponent","childProps","baseParent","componentRef","componentDidUpdate","afterUpdate","_renderCallbacks","beforeUnmount","componentWillUnmount","preact_render","merge","setState","forceUpdate","toArray","nodeList","_toConsumableArray","arr2","bem","blockName","_len","_key","strings","objectString","toStrings","POLOPOLY_ID_REGEX","getContextId","extractPolopolyIdFromString","preact","Component","Provider","_this$props","__CTX__","_objectWithoutProperties","connect","mapContextToProps","wrappedComponent","Connected","_Component2","_getPrototypeOf2","_this","_classCallCheck","_defineProperty","_assertThisInitialized","_possibleConstructorReturn","_getPrototypeOf","_inherits","_createClass","_objectSpread","displayName","shallowEqual","PureComponent","Timing","_PureComponent","timing_classCallCheck","timing_defineProperty","timing_assertThisInitialized","timing_possibleConstructorReturn","timing_getPrototypeOf","timing_inherits","timing_createClass","addIntersectionElement","_this2","timing_h","protoProps","staticProps","_Component","ReferenceError","lib_preact_pure_component_typeof","subClass","superClass","Byline","Byline_typeof","authors","author","idx","getImageUrl","_ref$width","_ref$ratio","chatLog","avatarImage","avatar","avatar__placeholder","avatar--right","date","date--isFirst","message--left","message--showAvatar","message--right","message--isLastInGroup","message__text","message__text--right","message__text--left","message__image","message__images","message__image--expanded","message__image--clickable","message__image--hover","message__image--left","message__image--right","message__name","message__content","message__content--left","message__content--right","message__content--showName","AvatarImage","alt","nopin","data-pin-nopin","Avatar","Avatar_typeof","person","displayImage","aria-hidden","side","initials","getInitials","ImageMessage","isLastInGroup","showAvatar","showName","imageSrc","TextMessage","ImagesMessage","Message","Message_typeof","_props","Date_typeof","isFirst","ChatLog","ChatLog_typeof","messages","HtmlContent","HtmlContent_typeof","nextProps","dataKey","data-key","emailList","email","email--left","email--right","email__header","nbsp","EmailList","EmailList_typeof","emails","datetime","subject","align","email_header_datetime","Figure","Figure_typeof","caption","credit","Heading","Heading_typeof","htmlProps","List","List_typeof","ListItem","ListItem_typeof","Paragraph","Paragraph_typeof","PullQuote","PullQuote_typeof","cite","viewBox","cx","cy","_extends","Video_typeof","Video","_temp","isPlaying","isResolvingPlay","tracks","handlePlay","onPlay","handlePause","onPause","handleDurationChange","onDurationChange","elm","duration","handleTimeupdate","onTimeupdate","textTracks","playing","onCaptionCueEnter","onCaptionCueExit","textTrack","track","addTextTrack","language","captions","addCue","VTTCue","TextTrackCue","_loop","cue","cues","onenter","startTime","onexit","_this3","onError","playPromise","_this4","_props2","restProps","eventHandlers","ResponsiveVideo_typeof","ResponsiveVideo","prevIs1080p","viewport","seek","resolution1080p","resolution720p","isValidViewport","is1080p","SerumImage","SerumImage_typeof","IMAGE_WIDTHS","createResponsiveSrcSet","opts","SerumResponsivePicture","SerumResponsivePicture_typeof","defaultUrl","srcSet","SerumSmartPicture","SerumSmartPicture_typeof","horizontal","vertical","horizontalSourceSet","verticalSourceSet","SerumLazyResponsivePicture","SerumLazyResponsivePicture_typeof","loadImage","loaderImage","visibleImage","dataset","decode","updateImage","currentSrc","_props$quality","_props$ratio","data-src","data-srcset","transition","Slide","Slide_typeof","stacked","visible","Slideshow","Slideshow_typeof","activeIndex","inlineStyle","data-active-index","SmartVideo_typeof","SmartVideo","prevIsHorizontal","isHorizontal","resolution960p","1080p","Scrubber_typeof","Scrubber","isScrubbing","handleKeyDown","onPositionUpdate","nextTime","handleMouseDown","focus","pageX","handleMouseMove","handleMouseUp","move","handleResize","bgElm","handleTouchStart","clientX","handleTouchMove","handleTouchEnd","handleElm","positionTimeout","aria-valuemin","aria-valuemax","aria-valuenow","togglePlayButton","togglePlayButton__pauseIcon","togglePlayButton--playing","togglePlayButton__playIcon","TogglePlayButton","onClick","toggleMuteButton","toggleMuteButton__volumeIcon","toggleMuteButton--muted","toggleMuteButton__mutedIcon","ToggleMuteButton","muted","VideoPlayer_typeof","VideoPlayer","handleUserTogglePlay","onUserTogglePlay","handleUserToggleMute","onUserToggleMute","handleScrubberPositionUpdate","_console","handleCaptionCueEnter","handleCaptionCueExit","_state","playsInline","ViewportIntersections","ViewportIntersections_typeof","intersections","onChange","onEnter","onLeave","intersectionObserver","prevIntersection","childElm","Text","text_classCallCheck","text_defineProperty","text_assertThisInitialized","text_possibleConstructorReturn","text_getPrototypeOf","backgroundImage","shadowMaker","shadowColor","backgroundColor","text_inherits","text_createClass","alphaFrom","_classNames","preload","noShadow","backgroundType","classNameWrapper","classNameText","classNameTextShadow","noPrologueDesktopShadow","shadowStyle","getShadowStyle","text_h","module_Paragraph","testReducedMotion","Lottie","lottie_classCallCheck","lottie_defineProperty","lottie_assertThisInitialized","lottie_possibleConstructorReturn","lottie_getPrototypeOf","lottieplayer","startFrame","stopFrame","lottie_inherits","lottie_createClass","mount","unmount","lottie_h","Svg","intro_text_classCallCheck","intro_text_possibleConstructorReturn","intro_text_getPrototypeOf","intro_text_inherits","intro_text_createClass","intro_text_h","xmlns","clip-rule","fill-opacity","clip-path","font-size","font-family","font-style","font-weight","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke","stroke-width","Intro","intro_classCallCheck","intro_defineProperty","intro_assertThisInitialized","intro_possibleConstructorReturn","intro_getPrototypeOf","intro_inherits","intro_createClass","wrapperClasses","renderAnimation","renderSvg","intro_h","lottie_Lottie","onDomLoaded","Blockquote","blockquote_classCallCheck","blockquote_possibleConstructorReturn","blockquote_getPrototypeOf","blockquote_inherits","blockquote_createClass","blockquote_h","module_PullQuote","Category","category_classCallCheck","category_possibleConstructorReturn","category_getPrototypeOf","category_inherits","category_createClass","category_h","byline_classCallCheck","byline_possibleConstructorReturn","byline_getPrototypeOf","byline_inherits","byline_createClass","roles","mappedRoles","byline_h","category_Category","isIOSSafari","iOS","webkit","Card","card_classCallCheck","card_possibleConstructorReturn","card_getPrototypeOf","card_inherits","card_createClass","card_defineProperty","card_h","_Link","sendGaEvent","location","linkData","link_h","click","Link","connector","LinkOut","linkout_classCallCheck","linkout_defineProperty","linkout_assertThisInitialized","linkout_possibleConstructorReturn","linkout_getPrototypeOf","handleIntersect","addIntersectionElements","intersectionElements","linkout_toConsumableArray","linkout_h","linkout_inherits","linkout_createClass","timingElements","getTimingElements","mappedLinks","imgUrl","card_Card","map_classCallCheck","map_defineProperty","map_assertThisInitialized","map_possibleConstructorReturn","map_getPrototypeOf","map_inherits","map_createClass","locationText","mapClasses","renderLine","getData","map_h","Chapter","chapter_classCallCheck","chapter_possibleConstructorReturn","chapter_getPrototypeOf","chapter_inherits","chapter_createClass","dots","chapter_toConsumableArray","totalChapters","dotClass","chapter_defineProperty","chapter","chapter_h","BylineInline","bylineinline_classCallCheck","bylineinline_possibleConstructorReturn","bylineinline_getPrototypeOf","bylineinline_inherits","bylineinline_createClass","bylineinline_h","Foreground","foreground_classCallCheck","foreground_defineProperty","foreground_assertThisInitialized","foreground_possibleConstructorReturn","foreground_getPrototypeOf","foreground_inherits","foreground_createClass","_classNames2","blocks","mappedBlocks","block","foreground_objectWithoutProperties","getComponentForType","foreground_h","foreground_extends","timing_Timing","isIe","image_classCallCheck","image_defineProperty","image_assertThisInitialized","image_possibleConstructorReturn","image_getPrototypeOf","timingIn","timingOut","imageUrl","polopolyIdVertical","createSrcSet","fadeInFrom","fadeOutTo","image_inherits","image_createClass","fadeIn","fadeOut","toActive","fromActive","fadeInFromElement","fadeOutToElement","_this$props2","altText","isClient","isFirstImage","isIE","fadeInFromDesktopSrcSet","fadeInFromMobileSrcSet","getMobileSrcSet","image_h","fadeOutToDesktopSrcSet","fadeOutToMobileSrcSet","desktopSrcSetMain","mobileSrcSetMain","fadeClasses","getDefaultUrl","HTML5Video","html5video_classCallCheck","html5video_defineProperty","html5video_assertThisInitialized","html5video_possibleConstructorReturn","html5video_getPrototypeOf","html5video_inherits","html5video_createClass","poster","html5video_h","x-webkit-airplay","mp4","profiles","16-9-640","16-9-1280","16-9-1920","9-16-960","9-16-1920","3-2-1620","3-2-1080","video_classCallCheck","video_defineProperty","video_assertThisInitialized","video_possibleConstructorReturn","video_getPrototypeOf","pauseUntilVisible","video_inherits","video_createClass","profile","getVideo","elementClasses","video_h","html5video_HTML5Video","shouldPlay","Black","black_classCallCheck","black_possibleConstructorReturn","black_getPrototypeOf","black_inherits","black_createClass","black_defineProperty","black_h","PhotoCredit","photocredit_classCallCheck","photocredit_possibleConstructorReturn","photocredit_getPrototypeOf","photocredit_inherits","photocredit_createClass","photographer","mediaType","photocredit_h","_Background","section","_this$props$section","shouldZoom","background_defineProperty","fadeUpDelay","background_h","background_extends","photocredit_PhotoCredit","Background","Section","section_classCallCheck","section_possibleConstructorReturn","section_getPrototypeOf","section_inherits","section_createClass","backgroundFadeUpDelay","section_h","section_extends","foreground_Foreground","ShowSourceButton","show_source_button_classCallCheck","show_source_button_possibleConstructorReturn","show_source_button_getPrototypeOf","show_source_button_inherits","show_source_button_createClass","buttonClassNames","show_source_button_defineProperty","show_source_button_h","Modal","modal_classCallCheck","modal_defineProperty","modal_assertThisInitialized","modal_possibleConstructorReturn","modal_getPrototypeOf","keyCode","prevFocus","activeElement","contains","modal_inherits","modal_createClass","handleEscClick","isOpen","modal_h","closeOnClickOutside","_Source","source_classCallCheck","source_defineProperty","source_assertThisInitialized","source_possibleConstructorReturn","source_getPrototypeOf","getActiveSectionSourceId","activeSection","containsSource","activeSectionSourceId","activeSectionContainsSource","activeSourceButtonID","getModalContent","source_h","show_source_button_ShowSourceButton","modal_Modal","getIdx","Source","Logo","logo_h","aria-label","focusable","_App","App_classCallCheck","App_defineProperty","App_assertThisInitialized","App_possibleConstructorReturn","App_getPrototypeOf","App_toConsumableArray","backgroundId","idxOfActiveElement","getIdxOfActiveElement","activeIdx","handleSourceButtonActive","handleBgChange","activeSource","sections","shouldPreload","App_h","section_Section","logo_Logo","getActiveSection","App","lastFunc","lastRan","defaultOpts","ssrOrientation","ViewportHeight","listener_classCallCheck","listener_objectSpread","listeners","orientation","getOrientation","portrait","landscape","mounted","handleUpdate","throttledUpdate","getVh","getHeight","currentOrientation","rootElementClassName","handleViewportUpdate","setProperty","domready","isInitialized","findElements","prefix","createUniqueId","preloadedState","preloadedStateJSON","errorTrackingEnabled","simpleErrorReport","isErrorReportingEnabled","createErrorReporter","listenAndCatch","metadataJSON","selfId","published","googleAnalyticsTracker","client_h","eventObj","client_objectSpread","sendError","components_App_App","vendor","opera","lowerCaseUserAgent","isAndroid","isIos","checkHasVhBug","Listener","listen"],"mappings":"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ACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KACRA,EAAQ,KA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","file":"v1-bundle-f2e167e3264856fc0afe.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"https://dh-static.mesos.nrk.no/dh-klima-spesial/static/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 165);\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});\n var key, own, out, exp;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\n if (exports[key] != out) hide(exports, key, exp);\n if (IS_PROTO && expProto[key] != out) expProto[key] = out;\n }\n};\nglobal.core = core;\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","var core = module.exports = { version: '2.6.2' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P) {\n O = toIObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return gOPD(O, P);\n } catch (e) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.nrkSerumImagecropUtils = {})));\n}(this, (function (exports) { 'use strict';\n\n var isPolopolyIdRegex = /^[1-9]{1,2}\\.\\d+$/;\n\n function isPolopolyId(id) {\n if (!id) {\n return false;\n }\n return isPolopolyIdRegex.test(id);\n }\n\n // prettier-ignore\n var widths = [100, 120, 150, 174, 200, 206, 225, 244, 250, 252, 300, 320, 350, 400, 450, 452, 460, 462, 500, 600, 650, 665, 682, 700, 734, 768, 900, 974, 1200, 1280, 1360, 1450, 1550, 1600, 1700, 1800, 1920, 2000, 2100, 2200, 2300, 2400];\n\n // prettier-ignore\n var ratios = ['1:1', '11', '16:9', '169', '16:3', '163', '3:4', '34'];\n\n // prettier-ignore\n var qualities = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0];\n\n var _baseUrl = 'https://nrk.no/serum/api/imagecrop/';\n\n function createUrl(_ref) {\n var id = _ref.id,\n ratio = _ref.ratio,\n width = _ref.width,\n quality = _ref.quality;\n\n var url = '' + _baseUrl + id;\n var queryString = createQueryString({ ratio: ratio, width: width, quality: quality });\n if (queryString) {\n url += '?' + queryString;\n }\n return url;\n }\n\n function createQueryString(_ref2) {\n var ratio = _ref2.ratio,\n width = _ref2.width,\n quality = _ref2.quality;\n\n if (!ratio && !width) {\n return quality ? 'quality=' + quality : '';\n }\n var ratioPart = ratio ? 'f' + ratio.replace(':', '') : '';\n var widthPart = width ? 'w' + width : '';\n var qualityPart = quality ? '&quality=' + quality : '';\n return 'cropid=' + ratioPart + widthPart + qualityPart;\n }\n\n function getClosestNumber(goal, targets) {\n if (!isValidGoal(goal)) {\n throw new Error('\\n getClosestNumber(goal, targets): passing a goal of ' + goal + '\\n is not supported. Pass a number');\n }\n if (!isValidTargets(targets)) {\n throw new Error('\\n getClosestNumber(goal, targets): targets ' + targets.toString() + ' is invald.\\n Pass an array of numbers');\n }\n if (!targets.length) {\n // eslint-disable-next-line no-undefined\n return undefined;\n }\n return targets.reduce(function (prev, curr) {\n return Math.abs(curr - goal) < Math.abs(prev - goal) ? curr : prev;\n });\n }\n\n function isValidGoal(goal) {\n return typeof goal === 'number';\n }\n\n function isValidTargets(targets) {\n if (!targets) {\n return false;\n }\n var isValid = true;\n for (var i = 0; i < targets.length; i++) {\n if (typeof targets[i] !== 'number') {\n isValid = false;\n break;\n }\n }\n // return targets.some((target) => {\n // return (typeof target !== 'number')\n // })\n return isValid;\n }\n\n function isValidRatio(ratio, supportedRatios) {\n if (!Array.isArray(supportedRatios)) {\n // eslint-disable-next-line no-useless-escape\n throw new Error(\"isValidRatio(ratio, supportedRatios): supportedRatios '\" + supportedRatios + \"' is not supported. Pass an array of supported ratios\");\n }\n if (!ratio) {\n return false;\n }\n return supportedRatios.includes(ratio);\n }\n\n function isValidQuality(quality, supportedQualities) {\n if (!Array.isArray(supportedQualities)) {\n // eslint-disable-next-line no-useless-escape\n throw new Error(\"isValidQuality(quality, supportedQualities): supportedQualities '\" + supportedQualities + \"' is not supported. Pass an array of supported qualities\");\n }\n if (!quality) {\n return false;\n }\n return supportedQualities.includes(quality);\n }\n\n function createImageUrl(options) {\n var polopolyId = options.id,\n width = options.width,\n ratio = options.ratio,\n quality = options.quality;\n\n\n if (!isPolopolyId(polopolyId)) {\n throw new Error('createSerumImageUrl(): invalid polopolyId. Got ' + polopolyId);\n }\n\n var args = {\n id: polopolyId,\n ratio: null,\n quality: 0.8,\n width: 0\n\n // If a ratio is provided, ensure that it is valid\n };if (hasOption(ratio)) {\n if (!isValidRatio(ratio, ratios)) {\n throw new Error('\\n createSerumImageUrl(): ratio ' + ratio + ' is not supported.\\n Supported ratios are ' + ratios.toString());\n }\n args.ratio = ratio;\n }\n\n // If a quality is provided, ensure that it is valid\n if (hasOption(quality)) {\n if (!isValidQuality(quality, qualities)) {\n throw new Error('\\n createSerumImageUrl(): quality ' + quality + ' is not supported.\\n Supported qualities are ' + qualities.toString());\n }\n args.quality = quality;\n }\n\n // If a width is provided, ensure that is is a positive integer\n if (hasOption(width)) {\n if (!isNumber(width) || width <= 0) {\n var errorMessage = 'createSerumImageUrl(): width must be a positive integer, got ' + width;\n throw new Error(errorMessage);\n }\n var isSupportedWidth = widths.includes(width);\n var closestWidth = getClosestNumber(width, widths);\n if (typeof closestWidth !== 'undefined' && closestWidth) {\n args.width = isSupportedWidth ? width : closestWidth;\n }\n }\n\n return createUrl(args);\n }\n\n function hasOption(option) {\n return typeof option !== 'undefined' && option;\n }\n\n function isNumber(number) {\n return Number.isInteger(number);\n }\n\n exports.createImageUrl = createImageUrl;\n exports.ratios = ratios;\n exports.widths = widths;\n exports.qualities = qualities;\n exports.isPolopolyId = isPolopolyId;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"background\":\"dh-dh-klima-spesial-background--555a4888c6a1be4587c23c2eb0feb205\",\"backgroundElement\":\"dh-dh-klima-spesial-backgroundElement--e36e71d03785e0f7fa5d639faa1f54bf\",\"active\":\"dh-dh-klima-spesial-active--fe08b1abff4d04d0812207e2d43f203c\",\"delayIn\":\"dh-dh-klima-spesial-delayIn--e77f3f7c53097687793d60c7fb324f1c\",\"delayOut\":\"dh-dh-klima-spesial-delayOut--a590334caa6ae7eb6b5eef5eada867fa\",\"fastDelayIn\":\"dh-dh-klima-spesial-fastDelayIn--22fc1d61b8778f6aa28b60dd73e90b51\",\"fastDelayOut\":\"dh-dh-klima-spesial-fastDelayOut--eb42ac9b81450689dfffcdfb8a259971\",\"klimakartDelayIn\":\"dh-dh-klima-spesial-klimakartDelayIn--83044b6b0e939b3e4c3ab0daffa96278\",\"slowOutFade\":\"dh-dh-klima-spesial-slowOutFade--e269092c043c0cfe175da2d16a159b96\",\"slowInFade\":\"dh-dh-klima-spesial-slowInFade--edbd7c4e30eaa952f22bbe6b13e0dbd9\",\"zoomIn\":\"dh-dh-klima-spesial-zoomIn--716718e79ab6536ed78798d6cfd8e1b6\",\"zoomMask\":\"dh-dh-klima-spesial-zoomMask--cab4cd5e4bcbf0153af186194863a0aa\",\"zoomInDesktop\":\"dh-dh-klima-spesial-zoomInDesktop--31b74840f0a1c40ce70c285c3f8e39ef\"};","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n","'use strict';\nvar fails = require('./_fails');\n\nmodule.exports = function (method, arg) {\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call\n arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);\n });\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\nmodule.exports = function (TYPE, $create) {\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 NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n var create = $create || asc;\n return function ($this, callbackfn, that) {\n var O = toObject($this);\n var self = IObject(O);\n var f = ctx(callbackfn, that, 3);\n var length = toLength(self.length);\n var index = 0;\n var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;\n var val, res;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n val = self[index];\n res = f(val, index, O);\n if (TYPE) {\n if (IS_MAP) result[index] = res; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"text\":\"dh-dh-klima-spesial-text--fe364935c44505802f421269f897096d\",\"textLoaded\":\"dh-dh-klima-spesial-textLoaded--4043273ac7696ed81277335da9ed896c\",\"card\":\"dh-dh-klima-spesial-card--09121bafcf2478c2940c681323d97761\",\"nomargintop\":\"dh-dh-klima-spesial-nomargintop--9bcb55dfbfd33ec09fbd2d1353e1b6ea\",\"prologue\":\"dh-dh-klima-spesial-prologue--4c48013655ce9489bac831c5bfa2e515\",\"green\":\"dh-dh-klima-spesial-green--aa2dcd6a4383358917ec1b9c7b047db0\",\"center\":\"dh-dh-klima-spesial-center--0cdad48a69a488e8f7cac2d0147a4ef0\",\"textwrapper\":\"dh-dh-klima-spesial-textwrapper--39af6fe292944a6114cbadd5f8ebfd66\",\"textShadow\":\"dh-dh-klima-spesial-textShadow--fba3eb01cd51d8a81a55a18c40a13be1\",\"loaded\":\"dh-dh-klima-spesial-loaded--a37cc5295457229b935f05cc02954059\",\"neonBlink\":\"dh-dh-klima-spesial-neonBlink--d5c033fd62eff4d89747a5e19f479c6f\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"picture\":\"dh-dh-klima-spesial-picture--28d00d3ad8a22ab9548061dad9d63155\",\"img\":\"dh-dh-klima-spesial-img--37c35e4da4276a7eb9df6b834720d28d\",\"ie\":\"dh-dh-klima-spesial-ie--067f2889aea23ad88b1c54053dda2d99\",\"ieActive\":\"dh-dh-klima-spesial-ieActive--26f99c41d4e61800675ea3005cc396b1 dh-dh-klima-spesial-ie--067f2889aea23ad88b1c54053dda2d99\"};","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","'use strict';\nif (require('./_descriptors')) {\n var LIBRARY = require('./_library');\n var global = require('./_global');\n var fails = require('./_fails');\n var $export = require('./_export');\n var $typed = require('./_typed');\n var $buffer = require('./_typed-buffer');\n var ctx = require('./_ctx');\n var anInstance = require('./_an-instance');\n var propertyDesc = require('./_property-desc');\n var hide = require('./_hide');\n var redefineAll = require('./_redefine-all');\n var toInteger = require('./_to-integer');\n var toLength = require('./_to-length');\n var toIndex = require('./_to-index');\n var toAbsoluteIndex = require('./_to-absolute-index');\n var toPrimitive = require('./_to-primitive');\n var has = require('./_has');\n var classof = require('./_classof');\n var isObject = require('./_is-object');\n var toObject = require('./_to-object');\n var isArrayIter = require('./_is-array-iter');\n var create = require('./_object-create');\n var getPrototypeOf = require('./_object-gpo');\n var gOPN = require('./_object-gopn').f;\n var getIterFn = require('./core.get-iterator-method');\n var uid = require('./_uid');\n var wks = require('./_wks');\n var createArrayMethod = require('./_array-methods');\n var createArrayIncludes = require('./_array-includes');\n var speciesConstructor = require('./_species-constructor');\n var ArrayIterators = require('./es6.array.iterator');\n var Iterators = require('./_iterators');\n var $iterDetect = require('./_iter-detect');\n var setSpecies = require('./_set-species');\n var arrayFill = require('./_array-fill');\n var arrayCopyWithin = require('./_array-copy-within');\n var $DP = require('./_object-dp');\n var $GOPD = require('./_object-gopd');\n var dP = $DP.f;\n var gOPD = $GOPD.f;\n var RangeError = global.RangeError;\n var TypeError = global.TypeError;\n var Uint8Array = global.Uint8Array;\n var ARRAY_BUFFER = 'ArrayBuffer';\n var SHARED_BUFFER = 'Shared' + ARRAY_BUFFER;\n var BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\n var PROTOTYPE = 'prototype';\n var ArrayProto = Array[PROTOTYPE];\n var $ArrayBuffer = $buffer.ArrayBuffer;\n var $DataView = $buffer.DataView;\n var arrayForEach = createArrayMethod(0);\n var arrayFilter = createArrayMethod(2);\n var arraySome = createArrayMethod(3);\n var arrayEvery = createArrayMethod(4);\n var arrayFind = createArrayMethod(5);\n var arrayFindIndex = createArrayMethod(6);\n var arrayIncludes = createArrayIncludes(true);\n var arrayIndexOf = createArrayIncludes(false);\n var arrayValues = ArrayIterators.values;\n var arrayKeys = ArrayIterators.keys;\n var arrayEntries = ArrayIterators.entries;\n var arrayLastIndexOf = ArrayProto.lastIndexOf;\n var arrayReduce = ArrayProto.reduce;\n var arrayReduceRight = ArrayProto.reduceRight;\n var arrayJoin = ArrayProto.join;\n var arraySort = ArrayProto.sort;\n var arraySlice = ArrayProto.slice;\n var arrayToString = ArrayProto.toString;\n var arrayToLocaleString = ArrayProto.toLocaleString;\n var ITERATOR = wks('iterator');\n var TAG = wks('toStringTag');\n var TYPED_CONSTRUCTOR = uid('typed_constructor');\n var DEF_CONSTRUCTOR = uid('def_constructor');\n var ALL_CONSTRUCTORS = $typed.CONSTR;\n var TYPED_ARRAY = $typed.TYPED;\n var VIEW = $typed.VIEW;\n var WRONG_LENGTH = 'Wrong length!';\n\n var $map = createArrayMethod(1, function (O, length) {\n return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);\n });\n\n var LITTLE_ENDIAN = fails(function () {\n // eslint-disable-next-line no-undef\n return new Uint8Array(new Uint16Array([1]).buffer)[0] === 1;\n });\n\n var FORCED_SET = !!Uint8Array && !!Uint8Array[PROTOTYPE].set && fails(function () {\n new Uint8Array(1).set({});\n });\n\n var toOffset = function (it, BYTES) {\n var offset = toInteger(it);\n if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');\n return offset;\n };\n\n var validate = function (it) {\n if (isObject(it) && TYPED_ARRAY in it) return it;\n throw TypeError(it + ' is not a typed array!');\n };\n\n var allocate = function (C, length) {\n if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {\n throw TypeError('It is not a typed array constructor!');\n } return new C(length);\n };\n\n var speciesFromList = function (O, list) {\n return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);\n };\n\n var fromList = function (C, list) {\n var index = 0;\n var length = list.length;\n var result = allocate(C, length);\n while (length > index) result[index] = list[index++];\n return result;\n };\n\n var addGetter = function (it, key, internal) {\n dP(it, key, { get: function () { return this._d[internal]; } });\n };\n\n var $from = function from(source /* , mapfn, thisArg */) {\n var O = toObject(source);\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iterFn = getIterFn(O);\n var i, length, values, result, step, iterator;\n if (iterFn != undefined && !isArrayIter(iterFn)) {\n for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {\n values.push(step.value);\n } O = values;\n }\n if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);\n for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {\n result[i] = mapping ? mapfn(O[i], i) : O[i];\n }\n return result;\n };\n\n var $of = function of(/* ...items */) {\n var index = 0;\n var length = arguments.length;\n var result = allocate(this, length);\n while (length > index) result[index] = arguments[index++];\n return result;\n };\n\n // iOS Safari 6.x fails here\n var TO_LOCALE_BUG = !!Uint8Array && fails(function () { arrayToLocaleString.call(new Uint8Array(1)); });\n\n var $toLocaleString = function toLocaleString() {\n return arrayToLocaleString.apply(TO_LOCALE_BUG ? arraySlice.call(validate(this)) : validate(this), arguments);\n };\n\n var proto = {\n copyWithin: function copyWithin(target, start /* , end */) {\n return arrayCopyWithin.call(validate(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n },\n every: function every(callbackfn /* , thisArg */) {\n return arrayEvery(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n fill: function fill(value /* , start, end */) { // eslint-disable-line no-unused-vars\n return arrayFill.apply(validate(this), arguments);\n },\n filter: function filter(callbackfn /* , thisArg */) {\n return speciesFromList(this, arrayFilter(validate(this), callbackfn,\n arguments.length > 1 ? arguments[1] : undefined));\n },\n find: function find(predicate /* , thisArg */) {\n return arrayFind(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n findIndex: function findIndex(predicate /* , thisArg */) {\n return arrayFindIndex(validate(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n },\n forEach: function forEach(callbackfn /* , thisArg */) {\n arrayForEach(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n indexOf: function indexOf(searchElement /* , fromIndex */) {\n return arrayIndexOf(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n includes: function includes(searchElement /* , fromIndex */) {\n return arrayIncludes(validate(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n },\n join: function join(separator) { // eslint-disable-line no-unused-vars\n return arrayJoin.apply(validate(this), arguments);\n },\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex */) { // eslint-disable-line no-unused-vars\n return arrayLastIndexOf.apply(validate(this), arguments);\n },\n map: function map(mapfn /* , thisArg */) {\n return $map(validate(this), mapfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n reduce: function reduce(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduce.apply(validate(this), arguments);\n },\n reduceRight: function reduceRight(callbackfn /* , initialValue */) { // eslint-disable-line no-unused-vars\n return arrayReduceRight.apply(validate(this), arguments);\n },\n reverse: function reverse() {\n var that = this;\n var length = validate(that).length;\n var middle = Math.floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n },\n some: function some(callbackfn /* , thisArg */) {\n return arraySome(validate(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n },\n sort: function sort(comparefn) {\n return arraySort.call(validate(this), comparefn);\n },\n subarray: function subarray(begin, end) {\n var O = validate(this);\n var length = O.length;\n var $begin = toAbsoluteIndex(begin, length);\n return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(\n O.buffer,\n O.byteOffset + $begin * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)\n );\n }\n };\n\n var $slice = function slice(start, end) {\n return speciesFromList(this, arraySlice.call(validate(this), start, end));\n };\n\n var $set = function set(arrayLike /* , offset */) {\n validate(this);\n var offset = toOffset(arguments[1], 1);\n var length = this.length;\n var src = toObject(arrayLike);\n var len = toLength(src.length);\n var index = 0;\n if (len + offset > length) throw RangeError(WRONG_LENGTH);\n while (index < len) this[offset + index] = src[index++];\n };\n\n var $iterators = {\n entries: function entries() {\n return arrayEntries.call(validate(this));\n },\n keys: function keys() {\n return arrayKeys.call(validate(this));\n },\n values: function values() {\n return arrayValues.call(validate(this));\n }\n };\n\n var isTAIndex = function (target, key) {\n return isObject(target)\n && target[TYPED_ARRAY]\n && typeof key != 'symbol'\n && key in target\n && String(+key) == String(key);\n };\n var $getDesc = function getOwnPropertyDescriptor(target, key) {\n return isTAIndex(target, key = toPrimitive(key, true))\n ? propertyDesc(2, target[key])\n : gOPD(target, key);\n };\n var $setDesc = function defineProperty(target, key, desc) {\n if (isTAIndex(target, key = toPrimitive(key, true))\n && isObject(desc)\n && has(desc, 'value')\n && !has(desc, 'get')\n && !has(desc, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !desc.configurable\n && (!has(desc, 'writable') || desc.writable)\n && (!has(desc, 'enumerable') || desc.enumerable)\n ) {\n target[key] = desc.value;\n return target;\n } return dP(target, key, desc);\n };\n\n if (!ALL_CONSTRUCTORS) {\n $GOPD.f = $getDesc;\n $DP.f = $setDesc;\n }\n\n $export($export.S + $export.F * !ALL_CONSTRUCTORS, 'Object', {\n getOwnPropertyDescriptor: $getDesc,\n defineProperty: $setDesc\n });\n\n if (fails(function () { arrayToString.call({}); })) {\n arrayToString = arrayToLocaleString = function toString() {\n return arrayJoin.call(this);\n };\n }\n\n var $TypedArrayPrototype$ = redefineAll({}, proto);\n redefineAll($TypedArrayPrototype$, $iterators);\n hide($TypedArrayPrototype$, ITERATOR, $iterators.values);\n redefineAll($TypedArrayPrototype$, {\n slice: $slice,\n set: $set,\n constructor: function () { /* noop */ },\n toString: arrayToString,\n toLocaleString: $toLocaleString\n });\n addGetter($TypedArrayPrototype$, 'buffer', 'b');\n addGetter($TypedArrayPrototype$, 'byteOffset', 'o');\n addGetter($TypedArrayPrototype$, 'byteLength', 'l');\n addGetter($TypedArrayPrototype$, 'length', 'e');\n dP($TypedArrayPrototype$, TAG, {\n get: function () { return this[TYPED_ARRAY]; }\n });\n\n // eslint-disable-next-line max-statements\n module.exports = function (KEY, BYTES, wrapper, CLAMPED) {\n CLAMPED = !!CLAMPED;\n var NAME = KEY + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + KEY;\n var SETTER = 'set' + KEY;\n var TypedArray = global[NAME];\n var Base = TypedArray || {};\n var TAC = TypedArray && getPrototypeOf(TypedArray);\n var FORCED = !TypedArray || !$typed.ABV;\n var O = {};\n var TypedArrayPrototype = TypedArray && TypedArray[PROTOTYPE];\n var getter = function (that, index) {\n var data = that._d;\n return data.v[GETTER](index * BYTES + data.o, LITTLE_ENDIAN);\n };\n var setter = function (that, index, value) {\n var data = that._d;\n if (CLAMPED) value = (value = Math.round(value)) < 0 ? 0 : value > 0xff ? 0xff : value & 0xff;\n data.v[SETTER](index * BYTES + data.o, value, LITTLE_ENDIAN);\n };\n var addElement = function (that, index) {\n dP(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n if (FORCED) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME, '_d');\n var index = 0;\n var offset = 0;\n var buffer, byteLength, length, klass;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new $ArrayBuffer(byteLength);\n } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n buffer = data;\n offset = toOffset($offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - offset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (TYPED_ARRAY in data) {\n return fromList(TypedArray, data);\n } else {\n return $from.call(TypedArray, data);\n }\n hide(that, '_d', {\n b: buffer,\n o: offset,\n l: byteLength,\n e: length,\n v: new $DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);\n hide(TypedArrayPrototype, 'constructor', TypedArray);\n } else if (!fails(function () {\n TypedArray(1);\n }) || !fails(function () {\n new TypedArray(-1); // eslint-disable-line no-new\n }) || !$iterDetect(function (iter) {\n new TypedArray(); // eslint-disable-line no-new\n new TypedArray(null); // eslint-disable-line no-new\n new TypedArray(1.5); // eslint-disable-line no-new\n new TypedArray(iter); // eslint-disable-line no-new\n }, true)) {\n TypedArray = wrapper(function (that, data, $offset, $length) {\n anInstance(that, TypedArray, NAME);\n var klass;\n // `ws` module bug, temporarily remove validation length for Uint8Array\n // https://github.com/websockets/ws/pull/645\n if (!isObject(data)) return new Base(toIndex(data));\n if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {\n return $length !== undefined\n ? new Base(data, toOffset($offset, BYTES), $length)\n : $offset !== undefined\n ? new Base(data, toOffset($offset, BYTES))\n : new Base(data);\n }\n if (TYPED_ARRAY in data) return fromList(TypedArray, data);\n return $from.call(TypedArray, data);\n });\n arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {\n if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);\n });\n TypedArray[PROTOTYPE] = TypedArrayPrototype;\n if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;\n }\n var $nativeIterator = TypedArrayPrototype[ITERATOR];\n var CORRECT_ITER_NAME = !!$nativeIterator\n && ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);\n var $iterator = $iterators.values;\n hide(TypedArray, TYPED_CONSTRUCTOR, true);\n hide(TypedArrayPrototype, TYPED_ARRAY, NAME);\n hide(TypedArrayPrototype, VIEW, true);\n hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);\n\n if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {\n dP(TypedArrayPrototype, TAG, {\n get: function () { return NAME; }\n });\n }\n\n O[NAME] = TypedArray;\n\n $export($export.G + $export.W + $export.F * (TypedArray != Base), O);\n\n $export($export.S, NAME, {\n BYTES_PER_ELEMENT: BYTES\n });\n\n $export($export.S + $export.F * fails(function () { Base.of.call(TypedArray, 1); }), NAME, {\n from: $from,\n of: $of\n });\n\n if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);\n\n $export($export.P, NAME, proto);\n\n setSpecies(NAME);\n\n $export($export.P + $export.F * FORCED_SET, NAME, { set: $set });\n\n $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);\n\n if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;\n\n $export($export.P + $export.F * fails(function () {\n new TypedArray(1).slice();\n }), NAME, { slice: $slice });\n\n $export($export.P + $export.F * (fails(function () {\n return [1, 2].toLocaleString() != new TypedArray([1, 2]).toLocaleString();\n }) || !fails(function () {\n TypedArrayPrototype.toLocaleString.call([1, 2]);\n })), NAME, { toLocaleString: $toLocaleString });\n\n Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;\n if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);\n };\n} else module.exports = function () { /* empty */ };\n","var Map = require('./es6.map');\nvar $export = require('./_export');\nvar shared = require('./_shared')('metadata');\nvar store = shared.store || (shared.store = new (require('./es6.weak-map'))());\n\nvar getOrCreateMetadataMap = function (target, targetKey, create) {\n var targetMetadata = store.get(target);\n if (!targetMetadata) {\n if (!create) return undefined;\n store.set(target, targetMetadata = new Map());\n }\n var keyMetadata = targetMetadata.get(targetKey);\n if (!keyMetadata) {\n if (!create) return undefined;\n targetMetadata.set(targetKey, keyMetadata = new Map());\n } return keyMetadata;\n};\nvar ordinaryHasOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? false : metadataMap.has(MetadataKey);\n};\nvar ordinaryGetOwnMetadata = function (MetadataKey, O, P) {\n var metadataMap = getOrCreateMetadataMap(O, P, false);\n return metadataMap === undefined ? undefined : metadataMap.get(MetadataKey);\n};\nvar ordinaryDefineOwnMetadata = function (MetadataKey, MetadataValue, O, P) {\n getOrCreateMetadataMap(O, P, true).set(MetadataKey, MetadataValue);\n};\nvar ordinaryOwnMetadataKeys = function (target, targetKey) {\n var metadataMap = getOrCreateMetadataMap(target, targetKey, false);\n var keys = [];\n if (metadataMap) metadataMap.forEach(function (_, key) { keys.push(key); });\n return keys;\n};\nvar toMetaKey = function (it) {\n return it === undefined || typeof it == 'symbol' ? it : String(it);\n};\nvar exp = function (O) {\n $export($export.S, 'Reflect', O);\n};\n\nmodule.exports = {\n store: store,\n map: getOrCreateMetadataMap,\n has: ordinaryHasOwnMetadata,\n get: ordinaryGetOwnMetadata,\n set: ordinaryDefineOwnMetadata,\n keys: ordinaryOwnMetadataKeys,\n key: toMetaKey,\n exp: exp\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"foreground\":\"dh-dh-klima-spesial-foreground--95d319ed9324789c817ab4c16b3e1605\",\"introCard\":\"dh-dh-klima-spesial-introCard--09b10d106457e74980e13fa8604eb257\",\"intro\":\"dh-dh-klima-spesial-intro--cb588824e6af50813829e7eef1a76aae\",\"innerWrapper\":\"dh-dh-klima-spesial-innerWrapper--8120c1cefcf08fe647e854417ff23b76\",\"left\":\"dh-dh-klima-spesial-left--0bcacf6a5741b2d151def8e34302acef\",\"right\":\"dh-dh-klima-spesial-right--4acc580ef73f307e0f77234aa0f5d8fd\",\"lessMarginBottom\":\"dh-dh-klima-spesial-lessMarginBottom--361c25f3e596b2550dfb15e77fbd9c63\",\"lessMarginTop\":\"dh-dh-klima-spesial-lessMarginTop--6a853a3e57350d13b20d40faf194b26f\"};","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n","module.exports = false;\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(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 (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');\n // fast case for arrays with default iterator\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"map\":\"dh-dh-klima-spesial-map--27788c2b59c62bbfdeca1386011e81dd\",\"line\":\"dh-dh-klima-spesial-line--af8aeb6a818f631bbc849e97f7e1d93a\",\"mapText\":\"dh-dh-klima-spesial-mapText--d8156d6dcb320eb3d2190b949e7109e9\",\"wrapper\":\"dh-dh-klima-spesial-wrapper--6b086f2177ee5d0dc098a5aa6f06d1e0\",\"tilGamvik\":\"dh-dh-klima-spesial-tilGamvik--22186c51f7ad9829046e7924e81a8485\",\"svalbard\":\"dh-dh-klima-spesial-svalbard--19028db44be23424c6d63dc07c50bfdb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"dh-dh-klima-spesial-wrapper--1c248ebcbf517334b1e08c9a9747ae36\",\"innerWrapper\":\"dh-dh-klima-spesial-innerWrapper--277ffdbb1090c009cdce2f66b948344f\",\"imgWrapper\":\"dh-dh-klima-spesial-imgWrapper--d26bc436787c8a403f71666304d3702b\",\"image\":\"dh-dh-klima-spesial-image--677b609e588676bd9911b11e24c24646\",\"list\":\"dh-dh-klima-spesial-list--83543e0d9c5217c8fc0beb511a7db066\",\"role\":\"dh-dh-klima-spesial-role--881d87c3fe6b954a2cd89e05916a532d\",\"name\":\"dh-dh-klima-spesial-name--2ca4648e24463c17bbb255e320cde10f\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"dh-dh-klima-spesial-wrapper--35d7f9f0ed740aab1b80455fbe4bc71e\",\"modal\":\"dh-dh-klima-spesial-modal--e0f3fbf317bc4208daf1970aa19a72ce\",\"button\":\"dh-dh-klima-spesial-button--57a9bf99a1c8c5935b43805d80b50f94\",\"content\":\"dh-dh-klima-spesial-content--d2fa2ee283f59b0c4f295780ea764167\",\"closeCircle\":\"dh-dh-klima-spesial-closeCircle--011661a78405a158e4212db02738d9ea\",\"text\":\"dh-dh-klima-spesial-text--028ba05d9e42627d9f73d75aeac883f3\",\"id\":\"dh-dh-klima-spesial-id--f3238867fec6a12439f98dfdbbe90cc9\"};","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","module.exports = {};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n};\n","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n",";(function(global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined'\n ? factory(exports)\n : typeof define === 'function' && define.amd\n ? define(['exports'], factory)\n : factory((global.nrkSerumImagecropUtils = {}))\n})(this, function(exports) {\n 'use strict'\n\n var isPolopolyIdRegex = /^[1-9]{1,2}\\.\\d+$/\n\n function isPolopolyId(id) {\n if (!id) {\n return false\n }\n return isPolopolyIdRegex.test(id)\n }\n\n // prettier-ignore\n var widths = [100, 120, 150, 174, 200, 206, 225, 244, 250, 252, 300, 320, 350, 400, 450, 452, 460, 462, 500, 600, 650, 665, 682, 700, 734, 768, 900, 974, 1200, 1280, 1360, 1450, 1550, 1600, 1700, 1800, 1920, 2000, 2100, 2200, 2300, 2400];\n\n // prettier-ignore\n var ratios = ['1:1', '11', '16:9', '169', '16:3', '163', '3:4', '34'];\n\n // prettier-ignore\n var qualities = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0];\n\n var _baseUrl = 'https://static.nrk.no/dh/module/klima-spesial/images/'\n\n function createUrl(_ref) {\n var id = _ref.id,\n ratio = _ref.ratio,\n width = _ref.width,\n quality = _ref.quality\n\n var url = '' + _baseUrl + id\n var queryString = createQueryString({ ratio: ratio, width: width, quality: quality })\n if (queryString) {\n url += '' + queryString\n }\n return url + '.jpg'\n }\n\n function createQueryString(_ref2) {\n var ratio = _ref2.ratio,\n width = _ref2.width,\n quality = _ref2.quality\n\n if (!ratio && !width) {\n return quality ? 'quality=' + quality : ''\n }\n var ratioPart = ratio ? 'f' + ratio.replace(':', '') : ''\n var widthPart = width ? 'w' + width : ''\n var qualityPart = quality ? '&quality=' + quality : ''\n return '-' + ratioPart + widthPart\n }\n\n function getClosestNumber(goal, targets) {\n if (!isValidGoal(goal)) {\n throw new Error(\n '\\n getClosestNumber(goal, targets): passing a goal of ' + goal + '\\n is not supported. Pass a number'\n )\n }\n if (!isValidTargets(targets)) {\n throw new Error(\n '\\n getClosestNumber(goal, targets): targets ' +\n targets.toString() +\n ' is invald.\\n Pass an array of numbers'\n )\n }\n if (!targets.length) {\n // eslint-disable-next-line no-undefined\n return undefined\n }\n return targets.reduce(function(prev, curr) {\n return Math.abs(curr - goal) < Math.abs(prev - goal) ? curr : prev\n })\n }\n\n function isValidGoal(goal) {\n return typeof goal === 'number'\n }\n\n function isValidTargets(targets) {\n if (!targets) {\n return false\n }\n var isValid = true\n for (var i = 0; i < targets.length; i++) {\n if (typeof targets[i] !== 'number') {\n isValid = false\n break\n }\n }\n // return targets.some((target) => {\n // return (typeof target !== 'number')\n // })\n return isValid\n }\n\n function isValidRatio(ratio, supportedRatios) {\n if (!Array.isArray(supportedRatios)) {\n // eslint-disable-next-line no-useless-escape\n throw new Error(\n \"isValidRatio(ratio, supportedRatios): supportedRatios '\" +\n supportedRatios +\n \"' is not supported. Pass an array of supported ratios\"\n )\n }\n if (!ratio) {\n return false\n }\n return supportedRatios.includes(ratio)\n }\n\n function isValidQuality(quality, supportedQualities) {\n if (!Array.isArray(supportedQualities)) {\n // eslint-disable-next-line no-useless-escape\n throw new Error(\n \"isValidQuality(quality, supportedQualities): supportedQualities '\" +\n supportedQualities +\n \"' is not supported. Pass an array of supported qualities\"\n )\n }\n if (!quality) {\n return false\n }\n return supportedQualities.includes(quality)\n }\n\n function createImageUrl(options) {\n var polopolyId = options.id,\n width = options.width,\n ratio = options.ratio,\n quality = options.quality\n\n if (!isPolopolyId(polopolyId)) {\n throw new Error('createSerumImageUrl(): invalid polopolyId. Got ' + polopolyId)\n }\n\n var args = {\n id: polopolyId,\n ratio: null,\n quality: 0.8,\n width: 0\n\n // If a ratio is provided, ensure that it is valid\n }\n if (hasOption(ratio)) {\n if (!isValidRatio(ratio, ratios)) {\n throw new Error(\n '\\n createSerumImageUrl(): ratio ' +\n ratio +\n ' is not supported.\\n Supported ratios are ' +\n ratios.toString()\n )\n }\n args.ratio = ratio\n }\n\n // If a quality is provided, ensure that it is valid\n if (hasOption(quality)) {\n if (!isValidQuality(quality, qualities)) {\n throw new Error(\n '\\n createSerumImageUrl(): quality ' +\n quality +\n ' is not supported.\\n Supported qualities are ' +\n qualities.toString()\n )\n }\n args.quality = quality\n }\n\n // If a width is provided, ensure that is is a positive integer\n if (hasOption(width)) {\n if (!isNumber(width) || width <= 0) {\n var errorMessage = 'createSerumImageUrl(): width must be a positive integer, got ' + width\n throw new Error(errorMessage)\n }\n var isSupportedWidth = widths.includes(width)\n var closestWidth = getClosestNumber(width, widths)\n if (typeof closestWidth !== 'undefined' && closestWidth) {\n args.width = isSupportedWidth ? width : closestWidth\n }\n }\n\n return createUrl(args)\n }\n\n function hasOption(option) {\n return typeof option !== 'undefined' && option\n }\n\n function isNumber(number) {\n return Number.isInteger(number)\n }\n\n exports.createImageUrl = createImageUrl\n exports.ratios = ratios\n exports.widths = widths\n exports.qualities = qualities\n exports.isPolopolyId = isPolopolyId\n\n Object.defineProperty(exports, '__esModule', { value: true })\n})\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"dh-dh-klima-spesial-wrapper--cbe16f6099f6f623eef02388ce7acbb8\",\"chapterNumber\":\"dh-dh-klima-spesial-chapterNumber--07f925733763aee89a2dad50ad6dfa21\",\"green\":\"dh-dh-klima-spesial-green--6930e3408014020f03c3a7706db095d3\",\"text\":\"dh-dh-klima-spesial-text--334df06594cc58a972630900e02158b8\",\"dot\":\"dh-dh-klima-spesial-dot--949a17e3b45ffa66e1c08b864ef7b337\",\"filledDot\":\"dh-dh-klima-spesial-filledDot--e59b933891b5210ba1968200e0a97c9b\"};","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","var $export = require('./_export');\nvar defined = require('./_defined');\nvar fails = require('./_fails');\nvar spaces = require('./_string-ws');\nvar space = '[' + spaces + ']';\nvar non = '\\u200b\\u0085';\nvar ltrim = RegExp('^' + space + space + '*');\nvar rtrim = RegExp(space + space + '*$');\n\nvar exporter = function (KEY, exec, ALIAS) {\n var exp = {};\n var FORCE = fails(function () {\n return !!spaces[KEY]() || non[KEY]() != non;\n });\n var fn = exp[KEY] = FORCE ? exec(trim) : spaces[KEY];\n if (ALIAS) exp[ALIAS] = fn;\n $export($export.P + $export.F * FORCE, 'String', exp);\n};\n\n// 1 -> String#trimLeft\n// 2 -> String#trimRight\n// 3 -> String#trim\nvar trim = exporter.trim = function (string, TYPE) {\n string = String(defined(string));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n};\n\nmodule.exports = exporter;\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"timing\":\"dh-dh-klima-spesial-timing--955db7d31b66ee6c51ba5189874b1c4f\",\"linkWrapper\":\"dh-dh-klima-spesial-linkWrapper--f3d0fc3b7e9d693ea65465f042d19659\",\"wrapper\":\"dh-dh-klima-spesial-wrapper--65a2348cd442c86c665a954b50b324d3\",\"header\":\"dh-dh-klima-spesial-header--57407b0dd8468089a2e3c30309bbc684\",\"links\":\"dh-dh-klima-spesial-links--b9326276cc735f02d5eb43f48e993b49\"};","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","exports.f = {}.propertyIsEnumerable;\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","'use strict';\n// 21.2.5.3 get RegExp.prototype.flags\nvar anObject = require('./_an-object');\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('species');\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","exports.f = Object.getOwnPropertySymbols;\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype;\n // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { return this; });\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n iter.next = function () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","'use strict';\n\nvar classof = require('./_classof');\nvar builtinExec = RegExp.prototype.exec;\n\n // `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw new TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n if (classof(R) !== 'RegExp') {\n throw new TypeError('RegExp#exec called on incompatible receiver');\n }\n return builtinExec.call(R, S);\n};\n","'use strict';\nrequire('./es6.regexp.exec');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\nvar regexpExec = require('./_regexp-exec');\n\nvar SPECIES = wks('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {\n // Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length === 2 && result[0] === 'a' && result[1] === 'b';\n})();\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n re.exec = function () { execCalled = true; return null; };\n if (KEY === 'split') {\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n }\n re[SYMBOL]('');\n return !execCalled;\n }) : undefined;\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var fns = exec(\n defined,\n SYMBOL,\n ''[KEY],\n function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }\n );\n var strfn = fns[0];\n var rxfn = fns[1];\n\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\nmodule.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {\n var Base = global[NAME];\n var C = Base;\n var ADDER = IS_MAP ? 'set' : 'add';\n var proto = C && C.prototype;\n var O = {};\n var fixMethod = function (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n KEY == 'delete' ? function (a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'has' ? function has(a) {\n return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'get' ? function get(a) {\n return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);\n } : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\n C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);\n redefineAll(C.prototype, methods);\n meta.NEED = true;\n } else {\n var instance = new C();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n if (!ACCEPT_ITERABLES) {\n C = wrapper(function (target, iterable) {\n anInstance(target, C, NAME);\n var that = inheritIfRequired(new Base(), target, C);\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n return that;\n });\n C.prototype = proto;\n proto.constructor = C;\n }\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar uid = require('./_uid');\nvar TYPED = uid('typed_array');\nvar VIEW = uid('view');\nvar ABV = !!(global.ArrayBuffer && global.DataView);\nvar CONSTR = ABV;\nvar i = 0;\nvar l = 9;\nvar Typed;\n\nvar TypedArrayConstructors = (\n 'Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array'\n).split(',');\n\nwhile (i < l) {\n if (Typed = global[TypedArrayConstructors[i++]]) {\n hide(Typed.prototype, TYPED, true);\n hide(Typed.prototype, VIEW, true);\n } else CONSTR = false;\n}\n\nmodule.exports = {\n ABV: ABV,\n CONSTR: CONSTR,\n TYPED: TYPED,\n VIEW: VIEW\n};\n","'use strict';\n// Forced replacement prototype accessors methods\nmodule.exports = require('./_library') || !require('./_fails')(function () {\n var K = Math.random();\n // In FF throws only define methods\n // eslint-disable-next-line no-undef, no-useless-call\n __defineSetter__.call(null, K, function () { /* empty */ });\n delete require('./_global')[K];\n});\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { of: function of() {\n var length = arguments.length;\n var A = new Array(length);\n while (length--) A[length] = arguments[length];\n return new this(A);\n } });\n};\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar ctx = require('./_ctx');\nvar forOf = require('./_for-of');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {\n var mapFn = arguments[1];\n var mapping, A, n, cb;\n aFunction(this);\n mapping = mapFn !== undefined;\n if (mapping) aFunction(mapFn);\n if (source == undefined) return new this();\n A = [];\n if (mapping) {\n n = 0;\n cb = ctx(mapFn, arguments[2], 2);\n forOf(source, false, function (nextItem) {\n A.push(cb(nextItem, n++));\n });\n } else {\n forOf(source, false, A.push, A);\n }\n return new this(A);\n } });\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"dh-dh-klima-spesial-root--f57b2d7cc02b9879ddbb595a70515f35\",\"app\":\"dh-dh-klima-spesial-app--5638d17ff8355b55f816045feef1ed1b\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"textwrapperIntro\":\"dh-dh-klima-spesial-textwrapperIntro--049d5a68a08f61569b9e9f5802deb277\",\"heading\":\"dh-dh-klima-spesial-heading--4e73333f8b1a2d80d17e671d574fd6cd\",\"lead\":\"dh-dh-klima-spesial-lead--b4c273dcf25567dabc8d4b6cefc43dc6\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"publishedAt\":\"dh-dh-klima-spesial-publishedAt--437cab66d6715db329155fb2dad2ae6a\",\"updatedAt\":\"dh-dh-klima-spesial-updatedAt--82a57b4de3a1841deb27834e8a3355c0 dh-dh-klima-spesial-publishedAt--437cab66d6715db329155fb2dad2ae6a\",\"wrapper\":\"dh-dh-klima-spesial-wrapper--0079892f0f2caf0472bd6dc341ecbf28\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"image\":\"dh-dh-klima-spesial-image--96e177347a7bd87f5c0ac49c54913893\",\"link\":\"dh-dh-klima-spesial-link--2ac62ad306df1d64820e199f8830831f\",\"linkText\":\"dh-dh-klima-spesial-linkText--5b32244e9dc7c15409fdc8c10c15634f\"};","!function(e,t){if(\"function\"==typeof define&&define.amd)define([\"exports\"],t);else if(\"undefined\"!=typeof exports)t(exports);else{var o={};t(o),e.bodyScrollLock=o}}(this,function(exports){\"use strict\";function r(e){if(Array.isArray(e)){for(var t=0,o=Array(e.length);t index) {\n var S = IObject(arguments[index++]);\n var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key];\n } return T;\n} : $assign;\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (O, proto) {\n anObject(O);\n if (!isObject(proto) && proto !== null) throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","module.exports = '\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003' +\n '\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').set;\nmodule.exports = function (that, target, C) {\n var S = target.constructor;\n var P;\n if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {\n setPrototypeOf(that, P);\n } return that;\n};\n","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n","// 20.2.2.28 Math.sign(x)\nmodule.exports = Math.sign || function sign(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;\n};\n","// 20.2.2.14 Math.expm1(x)\nvar $expm1 = Math.expm1;\nmodule.exports = (!$expm1\n // Old FF bug\n || $expm1(10) > 22025.465794806719 || $expm1(10) < 22025.4657948067165168\n // Tor Browser bug\n || $expm1(-2e-17) != -2e-17\n) ? function expm1(x) {\n return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;\n} : $expm1;\n","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, searchString, NAME) {\n if (isRegExp(searchString)) throw TypeError('String#' + NAME + \" doesn't accept regex!\");\n return String(defined(that));\n};\n","var MATCH = require('./_wks')('match');\nmodule.exports = function (KEY) {\n var re = /./;\n try {\n '/./'[KEY](re);\n } catch (e) {\n try {\n re[MATCH] = false;\n return !'/./'[KEY](re);\n } catch (f) { /* empty */ }\n } return true;\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = toLength(O.length);\n var aLen = arguments.length;\n var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);\n var end = aLen > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","'use strict';\n\nvar regexpFlags = require('./_flags');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar LAST_INDEX = 'lastIndex';\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/,\n re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;\n})();\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + re.source + '$(?!\\\\s)', regexpFlags.call(re));\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];\n\n match = nativeExec.call(re, str);\n\n if (UPDATES_LAST_INDEX_WRONG && match) {\n re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n // eslint-disable-next-line no-loop-func\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar at = require('./_string-at')(true);\n\n // `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? at(S, index).length : 1);\n};\n","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\nvar run = function () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n defer(counter);\n return counter;\n };\n clearTask = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (e) {\n if (head) notify();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","'use strict';\nvar global = require('./_global');\nvar DESCRIPTORS = require('./_descriptors');\nvar LIBRARY = require('./_library');\nvar $typed = require('./_typed');\nvar hide = require('./_hide');\nvar redefineAll = require('./_redefine-all');\nvar fails = require('./_fails');\nvar anInstance = require('./_an-instance');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar toIndex = require('./_to-index');\nvar gOPN = require('./_object-gopn').f;\nvar dP = require('./_object-dp').f;\nvar arrayFill = require('./_array-fill');\nvar setToStringTag = require('./_set-to-string-tag');\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length!';\nvar WRONG_INDEX = 'Wrong index!';\nvar $ArrayBuffer = global[ARRAY_BUFFER];\nvar $DataView = global[DATA_VIEW];\nvar Math = global.Math;\nvar RangeError = global.RangeError;\n// eslint-disable-next-line no-shadow-restricted-names\nvar Infinity = global.Infinity;\nvar BaseBuffer = $ArrayBuffer;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\nvar BUFFER = 'buffer';\nvar BYTE_LENGTH = 'byteLength';\nvar BYTE_OFFSET = 'byteOffset';\nvar $BUFFER = DESCRIPTORS ? '_b' : BUFFER;\nvar $LENGTH = DESCRIPTORS ? '_l' : BYTE_LENGTH;\nvar $OFFSET = DESCRIPTORS ? '_o' : BYTE_OFFSET;\n\n// IEEE754 conversions based on https://github.com/feross/ieee754\nfunction packIEEE754(value, mLen, nBytes) {\n var buffer = new Array(nBytes);\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var i = 0;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n var e, m, c;\n value = abs(value);\n // eslint-disable-next-line no-self-compare\n if (value != value || value === Infinity) {\n // eslint-disable-next-line no-self-compare\n m = value != value ? 1 : 0;\n e = eMax;\n } else {\n e = floor(log(value) / LN2);\n if (value * (c = pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * pow(2, eBias - 1) * pow(2, mLen);\n e = 0;\n }\n }\n for (; mLen >= 8; buffer[i++] = m & 255, m /= 256, mLen -= 8);\n e = e << mLen | m;\n eLen += mLen;\n for (; eLen > 0; buffer[i++] = e & 255, e /= 256, eLen -= 8);\n buffer[--i] |= s * 128;\n return buffer;\n}\nfunction unpackIEEE754(buffer, mLen, nBytes) {\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = eLen - 7;\n var i = nBytes - 1;\n var s = buffer[i--];\n var e = s & 127;\n var m;\n s >>= 7;\n for (; nBits > 0; e = e * 256 + buffer[i], i--, nBits -= 8);\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[i], i--, nBits -= 8);\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : s ? -Infinity : Infinity;\n } else {\n m = m + pow(2, mLen);\n e = e - eBias;\n } return (s ? -1 : 1) * m * pow(2, e - mLen);\n}\n\nfunction unpackI32(bytes) {\n return bytes[3] << 24 | bytes[2] << 16 | bytes[1] << 8 | bytes[0];\n}\nfunction packI8(it) {\n return [it & 0xff];\n}\nfunction packI16(it) {\n return [it & 0xff, it >> 8 & 0xff];\n}\nfunction packI32(it) {\n return [it & 0xff, it >> 8 & 0xff, it >> 16 & 0xff, it >> 24 & 0xff];\n}\nfunction packF64(it) {\n return packIEEE754(it, 52, 8);\n}\nfunction packF32(it) {\n return packIEEE754(it, 23, 4);\n}\n\nfunction addGetter(C, key, internal) {\n dP(C[PROTOTYPE], key, { get: function () { return this[internal]; } });\n}\n\nfunction get(view, bytes, index, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = store.slice(start, start + bytes);\n return isLittleEndian ? pack : pack.reverse();\n}\nfunction set(view, bytes, index, conversion, value, isLittleEndian) {\n var numIndex = +index;\n var intIndex = toIndex(numIndex);\n if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);\n var store = view[$BUFFER]._b;\n var start = intIndex + view[$OFFSET];\n var pack = conversion(+value);\n for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];\n}\n\nif (!$typed.ABV) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer, ARRAY_BUFFER);\n var byteLength = toIndex(length);\n this._b = arrayFill.call(new Array(byteLength), 0);\n this[$LENGTH] = byteLength;\n };\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, $DataView, DATA_VIEW);\n anInstance(buffer, $ArrayBuffer, DATA_VIEW);\n var bufferLength = buffer[$LENGTH];\n var offset = toInteger(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n this[$BUFFER] = buffer;\n this[$OFFSET] = offset;\n this[$LENGTH] = byteLength;\n };\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, BYTE_LENGTH, '_l');\n addGetter($DataView, BUFFER, '_b');\n addGetter($DataView, BYTE_LENGTH, '_l');\n addGetter($DataView, BYTE_OFFSET, '_o');\n }\n\n redefineAll($DataView[PROTOTYPE], {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments[1]);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1]));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackI32(get(this, 4, byteOffset, arguments[1])) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments[1]), 23, 4);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments[1]), 52, 8);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packI8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packI16, value, arguments[2]);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packI32, value, arguments[2]);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packF32, value, arguments[2]);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packF64, value, arguments[2]);\n }\n });\n} else {\n if (!fails(function () {\n $ArrayBuffer(1);\n }) || !fails(function () {\n new $ArrayBuffer(-1); // eslint-disable-line no-new\n }) || fails(function () {\n new $ArrayBuffer(); // eslint-disable-line no-new\n new $ArrayBuffer(1.5); // eslint-disable-line no-new\n new $ArrayBuffer(NaN); // eslint-disable-line no-new\n return $ArrayBuffer.name != ARRAY_BUFFER;\n })) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, $ArrayBuffer);\n return new BaseBuffer(toIndex(length));\n };\n var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];\n for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);\n }\n if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;\n }\n // iOS Safari 7.x bug\n var view = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = $DataView[PROTOTYPE].setInt8;\n view.setInt8(0, 2147483648);\n view.setInt8(1, 2147483649);\n if (view.getInt8(0) || !view.getInt8(1)) redefineAll($DataView[PROTOTYPE], {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8.call(this, byteOffset, value << 24 >> 24);\n }\n }, true);\n}\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\nhide($DataView[PROTOTYPE], $typed.VIEW, true);\nexports[ARRAY_BUFFER] = $ArrayBuffer;\nexports[DATA_VIEW] = $DataView;\n","// all object keys, includes non-enumerable and symbols\nvar gOPN = require('./_object-gopn');\nvar gOPS = require('./_object-gops');\nvar anObject = require('./_an-object');\nvar Reflect = require('./_global').Reflect;\nmodule.exports = Reflect && Reflect.ownKeys || function ownKeys(it) {\n var keys = gOPN.f(anObject(it));\n var getSymbols = gOPS.f;\n return getSymbols ? keys.concat(getSymbols(it)) : keys;\n};\n","module.exports = function (regExp, replace) {\n var replacer = replace === Object(replace) ? function (part) {\n return replace[part];\n } : replace;\n return function (it) {\n return String(it).replace(regExp, replacer);\n };\n};\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"card\":\"dh-dh-klima-spesial-card--f554ca6ae78be9eeb2a22e3799d0ad7b\",\"cardActive\":\"dh-dh-klima-spesial-cardActive--c56bae1c79edfb153cd5032ed3e40ebd\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"video\":\"dh-dh-klima-spesial-video--94b269c4627a6f8aacd41776f6f47b32\",\"videoElement\":\"dh-dh-klima-spesial-videoElement--03ac608ff1e0e4bcae6d568160a8d44e\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"black\":\"dh-dh-klima-spesial-black--f32a6c8cc1d184c8b270f761d293ccd6\",\"solidColor\":\"dh-dh-klima-spesial-solidColor--2166b7dee9a8b35afb09ad182893d39b\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"photocredit\":\"dh-dh-klima-spesial-photocredit--3ecdc62c004ffbeb332afa71d2239f7c\",\"wrapper\":\"dh-dh-klima-spesial-wrapper--6cd06936397f106d7a8df519111573d2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"dh-dh-klima-spesial-button--ed9b0c772c700c695af302a6cd55cd89\",\"buttonActive\":\"dh-dh-klima-spesial-buttonActive--008b3b2ae355f59e8af96cb183571837\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"link\":\"dh-dh-klima-spesial-link--491ae842b754bb6e07527e4030cd033a\",\"logo\":\"dh-dh-klima-spesial-logo--46875081d8e4c0f03343a427c27ad39c\"};","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","exports.f = require('./_wks');\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n while (length > i) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 7.2.9 SameValue(x, y)\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","'use strict';\nvar aFunction = require('./_a-function');\nvar isObject = require('./_is-object');\nvar invoke = require('./_invoke');\nvar arraySlice = [].slice;\nvar factories = {};\n\nvar construct = function (F, len, args) {\n if (!(len in factories)) {\n for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';\n // eslint-disable-next-line no-new-func\n factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');\n } return factories[len](F, args);\n};\n\nmodule.exports = Function.bind || function bind(that /* , ...args */) {\n var fn = aFunction(this);\n var partArgs = arraySlice.call(arguments, 1);\n var bound = function (/* args... */) {\n var args = partArgs.concat(arraySlice.call(arguments));\n return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);\n };\n if (isObject(fn.prototype)) bound.prototype = fn.prototype;\n return bound;\n};\n","var $parseInt = require('./_global').parseInt;\nvar $trim = require('./_string-trim').trim;\nvar ws = require('./_string-ws');\nvar hex = /^[-+]?0[xX]/;\n\nmodule.exports = $parseInt(ws + '08') !== 8 || $parseInt(ws + '0x16') !== 22 ? function parseInt(str, radix) {\n var string = $trim(String(str), 3);\n return $parseInt(string, (radix >>> 0) || (hex.test(string) ? 16 : 10));\n} : $parseInt;\n","var $parseFloat = require('./_global').parseFloat;\nvar $trim = require('./_string-trim').trim;\n\nmodule.exports = 1 / $parseFloat(require('./_string-ws') + '-0') !== -Infinity ? function parseFloat(str) {\n var string = $trim(String(str), 3);\n var result = $parseFloat(string);\n return result === 0 && string.charAt(0) == '-' ? -0 : result;\n} : $parseFloat;\n","var cof = require('./_cof');\nmodule.exports = function (it, msg) {\n if (typeof it != 'number' && cof(it) != 'Number') throw TypeError(msg);\n return +it;\n};\n","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","// 20.2.2.20 Math.log1p(x)\nmodule.exports = Math.log1p || function log1p(x) {\n return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);\n};\n","// 20.2.2.16 Math.fround(x)\nvar sign = require('./_math-sign');\nvar pow = Math.pow;\nvar EPSILON = pow(2, -52);\nvar EPSILON32 = pow(2, -23);\nvar MAX32 = pow(2, 127) * (2 - EPSILON32);\nvar MIN32 = pow(2, -126);\n\nvar roundTiesToEven = function (n) {\n return n + 1 / EPSILON - 1 / EPSILON;\n};\n\nmodule.exports = Math.fround || function fround(x) {\n var $abs = Math.abs(x);\n var $sign = sign(x);\n var a, result;\n if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;\n a = (1 + EPSILON32 / EPSILON) * $abs;\n result = a - (a - $abs);\n // eslint-disable-next-line no-self-compare\n if (result > MAX32 || result != result) return $sign * Infinity;\n return $sign * result;\n};\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","var aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar toLength = require('./_to-length');\n\nmodule.exports = function (that, callbackfn, aLen, memo, isRight) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IObject(O);\n var length = toLength(O.length);\n var index = isRight ? length - 1 : 0;\n var i = isRight ? -1 : 1;\n if (aLen < 2) for (;;) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (isRight ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n};\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\n'use strict';\nvar toObject = require('./_to-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\n\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = toLength(O.length);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else delete O[to];\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar regexpExec = require('./_regexp-exec');\nrequire('./_export')({\n target: 'RegExp',\n proto: true,\n forced: regexpExec !== /./.exec\n}, {\n exec: regexpExec\n});\n","// 21.2.5.3 get RegExp.prototype.flags()\nif (require('./_descriptors') && /./g.flags != 'g') require('./_object-dp').f(RegExp.prototype, 'flags', {\n configurable: true,\n get: require('./_flags')\n});\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar MAP = 'Map';\n\n// 23.1 Map Objects\nmodule.exports = require('./_collection')(MAP, function (get) {\n return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.1.3.6 Map.prototype.get(key)\n get: function get(key) {\n var entry = strong.getEntry(validate(this, MAP), key);\n return entry && entry.v;\n },\n // 23.1.3.9 Map.prototype.set(key, value)\n set: function set(key, value) {\n return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);\n }\n}, strong, true);\n","'use strict';\nvar dP = require('./_object-dp').f;\nvar create = require('./_object-create');\nvar redefineAll = require('./_redefine-all');\nvar ctx = require('./_ctx');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar $iterDefine = require('./_iter-define');\nvar step = require('./_iter-step');\nvar setSpecies = require('./_set-species');\nvar DESCRIPTORS = require('./_descriptors');\nvar fastKey = require('./_meta').fastKey;\nvar validate = require('./_validate-collection');\nvar SIZE = DESCRIPTORS ? '_s' : 'size';\n\nvar getEntry = function (that, key) {\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return that._i[index];\n // frozen object case\n for (entry = that._f; entry; entry = entry.n) {\n if (entry.k == key) return entry;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = create(null); // index\n that._f = undefined; // first entry\n that._l = undefined; // last entry\n that[SIZE] = 0; // size\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.1.3.1 Map.prototype.clear()\n // 23.2.3.2 Set.prototype.clear()\n clear: function clear() {\n for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {\n entry.r = true;\n if (entry.p) entry.p = entry.p.n = undefined;\n delete data[entry.i];\n }\n that._f = that._l = undefined;\n that[SIZE] = 0;\n },\n // 23.1.3.3 Map.prototype.delete(key)\n // 23.2.3.4 Set.prototype.delete(value)\n 'delete': function (key) {\n var that = validate(this, NAME);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.n;\n var prev = entry.p;\n delete that._i[entry.i];\n entry.r = true;\n if (prev) prev.n = next;\n if (next) next.p = prev;\n if (that._f == entry) that._f = next;\n if (that._l == entry) that._l = prev;\n that[SIZE]--;\n } return !!entry;\n },\n // 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)\n // 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)\n forEach: function forEach(callbackfn /* , that = undefined */) {\n validate(this, NAME);\n var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);\n var entry;\n while (entry = entry ? entry.n : this._f) {\n f(entry.v, entry.k, this);\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n }\n },\n // 23.1.3.7 Map.prototype.has(key)\n // 23.2.3.7 Set.prototype.has(value)\n has: function has(key) {\n return !!getEntry(validate(this, NAME), key);\n }\n });\n if (DESCRIPTORS) dP(C.prototype, 'size', {\n get: function () {\n return validate(this, NAME)[SIZE];\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var entry = getEntry(that, key);\n var prev, index;\n // change existing entry\n if (entry) {\n entry.v = value;\n // create new entry\n } else {\n that._l = entry = {\n i: index = fastKey(key, true), // <- index\n k: key, // <- key\n v: value, // <- value\n p: prev = that._l, // <- previous entry\n n: undefined, // <- next entry\n r: false // <- removed\n };\n if (!that._f) that._f = entry;\n if (prev) prev.n = entry;\n that[SIZE]++;\n // add to index\n if (index !== 'F') that._i[index] = entry;\n } return that;\n },\n getEntry: getEntry,\n setStrong: function (C, NAME, IS_MAP) {\n // add .keys, .values, .entries, [@@iterator]\n // 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11\n $iterDefine(C, NAME, function (iterated, kind) {\n this._t = validate(iterated, NAME); // target\n this._k = kind; // kind\n this._l = undefined; // previous\n }, function () {\n var that = this;\n var kind = that._k;\n var entry = that._l;\n // revert to the last existing entry\n while (entry && entry.r) entry = entry.p;\n // get next entry\n if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {\n // or finish the iteration\n that._t = undefined;\n return step(1);\n }\n // return step by kind\n if (kind == 'keys') return step(0, entry.k);\n if (kind == 'values') return step(0, entry.v);\n return step(0, [entry.k, entry.v]);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // add [@@species], 23.1.2.2, 23.2.2.2\n setSpecies(NAME);\n }\n};\n","'use strict';\nvar strong = require('./_collection-strong');\nvar validate = require('./_validate-collection');\nvar SET = 'Set';\n\n// 23.2 Set Objects\nmodule.exports = require('./_collection')(SET, function (get) {\n return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.2.3.1 Set.prototype.add(value)\n add: function add(value) {\n return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);\n }\n}, strong);\n","'use strict';\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar validate = require('./_validate-collection');\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar tmp = {};\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n if (isObject(key)) {\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);\n return data ? data[this._i] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {\n InternalMap = weak.getConstructor(wrapper, WEAK_MAP);\n assign(InternalMap.prototype, methods);\n meta.NEED = true;\n each(['delete', 'has', 'get', 'set'], function (key) {\n var proto = $WeakMap.prototype;\n var method = proto[key];\n redefine(proto, key, function (a, b) {\n // store frozen objects on internal weakmap shim\n if (isObject(a) && !isExtensible(a)) {\n if (!this._f) this._f = new InternalMap();\n var result = this._f[key](a, b);\n return key == 'set' ? this : result;\n // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (key) {\n var index = arrayFindIndex(this.a, function (it) {\n return it[0] === key;\n });\n if (~index) this.a.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);\n return data && $has(data, this._i) && delete data[this._i];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n if (!isObject(key)) return false;\n var data = getWeak(key);\n if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);\n return data && $has(data, this._i);\n }\n });\n return C;\n },\n def: function (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","// https://tc39.github.io/ecma262/#sec-toindex\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toInteger(it);\n var length = toLength(number);\n if (number !== length) throw RangeError('Wrong length!');\n return length;\n};\n","'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-FlattenIntoArray\nvar isArray = require('./_is-array');\nvar isObject = require('./_is-object');\nvar toLength = require('./_to-length');\nvar ctx = require('./_ctx');\nvar IS_CONCAT_SPREADABLE = require('./_wks')('isConcatSpreadable');\n\nfunction flattenIntoArray(target, original, source, sourceLen, start, depth, mapper, thisArg) {\n var targetIndex = start;\n var sourceIndex = 0;\n var mapFn = mapper ? ctx(mapper, thisArg, 3) : false;\n var element, spreadable;\n\n while (sourceIndex < sourceLen) {\n if (sourceIndex in source) {\n element = mapFn ? mapFn(source[sourceIndex], sourceIndex, original) : source[sourceIndex];\n\n spreadable = false;\n if (isObject(element)) {\n spreadable = element[IS_CONCAT_SPREADABLE];\n spreadable = spreadable !== undefined ? !!spreadable : isArray(element);\n }\n\n if (spreadable && depth > 0) {\n targetIndex = flattenIntoArray(target, original, element, toLength(element.length), targetIndex, depth - 1) - 1;\n } else {\n if (targetIndex >= 0x1fffffffffffff) throw TypeError();\n target[targetIndex] = element;\n }\n\n targetIndex++;\n }\n sourceIndex++;\n }\n return targetIndex;\n}\n\nmodule.exports = flattenIntoArray;\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length');\nvar repeat = require('./_string-repeat');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, maxLength, fillString, left) {\n var S = String(defined(that));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n if (intMaxLength <= stringLength || fillStr == '') return S;\n var fillLen = intMaxLength - stringLength;\n var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","var getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').f;\nmodule.exports = function (isEntries) {\n return function (it) {\n var O = toIObject(it);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) if (isEnum.call(O, key = keys[i++])) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n } return result;\n };\n};\n","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar classof = require('./_classof');\nvar from = require('./_array-from-iterable');\nmodule.exports = function (NAME) {\n return function toJSON() {\n if (classof(this) != NAME) throw TypeError(NAME + \"#toJSON isn't generic\");\n return from(this);\n };\n};\n","var forOf = require('./_for-of');\n\nmodule.exports = function (iter, ITERATOR) {\n var result = [];\n forOf(iter, false, result.push, result, ITERATOR);\n return result;\n};\n","// https://rwaldron.github.io/proposal-math-extensions/\nmodule.exports = Math.scale || function scale(x, inLow, inHigh, outLow, outHigh) {\n if (\n arguments.length === 0\n // eslint-disable-next-line no-self-compare\n || x != x\n // eslint-disable-next-line no-self-compare\n || inLow != inLow\n // eslint-disable-next-line no-self-compare\n || inHigh != inHigh\n // eslint-disable-next-line no-self-compare\n || outLow != outLow\n // eslint-disable-next-line no-self-compare\n || outHigh != outHigh\n ) return NaN;\n if (x === Infinity || x === -Infinity) return x;\n return (x - inLow) * (outHigh - outLow) / (inHigh - inLow) + outLow;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').isIterable = function (it) {\n var O = Object(it);\n return O[ITERATOR] !== undefined\n || '@@iterator' in O\n // eslint-disable-next-line no-prototype-builtins\n || Iterators.hasOwnProperty(classof(O));\n};\n","'use strict';\nvar path = require('./_path');\nvar invoke = require('./_invoke');\nvar aFunction = require('./_a-function');\nmodule.exports = function (/* ...pargs */) {\n var fn = aFunction(this);\n var length = arguments.length;\n var pargs = new Array(length);\n var i = 0;\n var _ = path._;\n var holder = false;\n while (length > i) if ((pargs[i] = arguments[i++]) === _) holder = true;\n return function (/* ...args */) {\n var that = this;\n var aLen = arguments.length;\n var j = 0;\n var k = 0;\n var args;\n if (!holder && !aLen) return invoke(fn, pargs, that);\n args = pargs.slice();\n if (holder) for (;length > j; j++) if (args[j] === _) args[j] = arguments[k++];\n while (aLen > k) args.push(arguments[k++]);\n return invoke(fn, args, that);\n };\n};\n","module.exports = require('./_global');\n","var dP = require('./_object-dp');\nvar gOPD = require('./_object-gopd');\nvar ownKeys = require('./_own-keys');\nvar toIObject = require('./_to-iobject');\n\nmodule.exports = function define(target, mixin) {\n var keys = ownKeys(toIObject(mixin));\n var length = keys.length;\n var i = 0;\n var key;\n while (length > i) dP.f(target, key = keys[i++], gOPD.f(mixin, key));\n return target;\n};\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n */\n!function (name, definition) {\n\n if (typeof module != 'undefined') module.exports = definition()\n else if (typeof define == 'function' && typeof define.amd == 'object') define(definition)\n else this[name] = definition()\n\n}('domready', function () {\n\n var fns = [], listener\n , doc = document\n , hack = doc.documentElement.doScroll\n , domContentLoaded = 'DOMContentLoaded'\n , loaded = (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState)\n\n\n if (!loaded)\n doc.addEventListener(domContentLoaded, listener = function () {\n doc.removeEventListener(domContentLoaded, listener)\n loaded = 1\n while (listener = fns.shift()) listener()\n })\n\n return function (fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn)\n }\n\n});\n","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?n(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],n):n(e[\"dh-analytics-utils\"]={})}(this,function(e){\"use strict\";function n(){return window.ga}var t=Object.assign||function(e){for(var n=1;n0}}]),e}(),t=Object.assign||function(e){for(var n=1;n0&&(a.line=o),s>0&&(a.column=s),n.error&&\"function\"==typeof e.parseStack?e.parseStack(n.error).then(function(n){e.sendErrorReport(t({},a,{stackTrace:n}))}):e.sendErrorReport(a)}),window.addEventListener(\"unhandledrejection\",function(n){e.sendErrorReport({message:\"Unhandled Promise Rejection: \"+n.reason})}))}},{key:\"sendErrorReport\",value:function(e){var n,r,t;this.dryRun?\"undefined\"!=typeof console&&console.log(\"Dry run: \"+JSON.stringify(e)):this.errorRegister.isInRegisterWithinRange(e.message,500)||(this.errorRegister.addErrorToRegister(e.message),n=this.url+\"/\"+this.name,r=e,(t=new XMLHttpRequest).open(\"POST\",n),t.setRequestHeader(\"Content-Type\",\"application/json\"),t.send(JSON.stringify(r)))}}]),e}();e.SimpleErrorReport=s,Object.defineProperty(e,\"__esModule\",{value:!0})});\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tail\":\"dh-dh-klima-spesial-tail--9fd966860ac9348f8c573c3e2cb4e524\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"quote\":\"dh-dh-klima-spesial-quote--6ee4fb29d4c655f0588940a39e5dab90\",\"left\":\"dh-dh-klima-spesial-left--229b435e89d643bee45790b0effc1536\",\"right\":\"dh-dh-klima-spesial-right--a013b24715a160d15938c2a4ee566216\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header\":\"dh-dh-klima-spesial-header--a5dcc3f48075c6584c5f0161a3cf888e\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"dh-dh-klima-spesial-wrapper--afaf51f04478a9ef2dcea14746c92f64\"};","/* eslint-disable */\nimport 'intersection-observer'\nimport 'picturefill'\nimport 'core-js'\n","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n\n(function(window, document) {\n'use strict';\n\n\n// Exits early if all IntersectionObserver and IntersectionObserverEntry\n// features are natively supported.\nif ('IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype,\n 'isIntersecting', {\n get: function () {\n return this.intersectionRatio > 0;\n }\n });\n }\n return;\n}\n\n\n/**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\nvar registry = [];\n\n\n/**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\nfunction IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = entry.rootBounds;\n this.boundingClientRect = entry.boundingClientRect;\n this.intersectionRect = entry.intersectionRect || getEmptyRect();\n this.isIntersecting = !!entry.intersectionRect;\n\n // Calculates the intersection ratio.\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height;\n\n // Sets intersection ratio.\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n}\n\n\n/**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\nfunction IntersectionObserver(callback, opt_options) {\n\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (options.root && options.root.nodeType != 1) {\n throw new Error('root must be an Element');\n }\n\n // Binds and throttles `this._checkForIntersections`.\n this._checkForIntersections = throttle(\n this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);\n\n // Private properties.\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin);\n\n // Public properties.\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function(margin) {\n return margin.value + margin.unit;\n }).join(' ');\n}\n\n\n/**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\nIntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n\n\n/**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\nIntersectionObserver.prototype.POLL_INTERVAL = null;\n\n/**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\nIntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n\n\n/**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.observe = function(target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function(item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n this._observationTargets.push({element: target, entry: null});\n this._monitorIntersections();\n this._checkForIntersections();\n};\n\n\n/**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.unobserve = function(target) {\n this._observationTargets =\n this._observationTargets.filter(function(item) {\n\n return item.element != target;\n });\n if (!this._observationTargets.length) {\n this._unmonitorIntersections();\n this._unregisterInstance();\n }\n};\n\n\n/**\n * Stops observing all target elements for intersection changes.\n */\nIntersectionObserver.prototype.disconnect = function() {\n this._observationTargets = [];\n this._unmonitorIntersections();\n this._unregisterInstance();\n};\n\n\n/**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\nIntersectionObserver.prototype.takeRecords = function() {\n var records = this._queuedEntries.slice();\n this._queuedEntries = [];\n return records;\n};\n\n\n/**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\nIntersectionObserver.prototype._initThresholds = function(opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n\n return threshold.sort().filter(function(t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n return t !== a[i - 1];\n });\n};\n\n\n/**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array} An array of margin objects with the keys\n * value and unit.\n */\nIntersectionObserver.prototype._parseRootMargin = function(opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function(margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n return {value: parseFloat(parts[1]), unit: parts[2]};\n });\n\n // Handles shorthand.\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n\n return margins;\n};\n\n\n/**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibility state is visible.\n * @private\n */\nIntersectionObserver.prototype._monitorIntersections = function() {\n if (!this._monitoringIntersections) {\n this._monitoringIntersections = true;\n\n // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n if (this.POLL_INTERVAL) {\n this._monitoringInterval = setInterval(\n this._checkForIntersections, this.POLL_INTERVAL);\n }\n else {\n addEvent(window, 'resize', this._checkForIntersections, true);\n addEvent(document, 'scroll', this._checkForIntersections, true);\n\n if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in window) {\n this._domObserver = new MutationObserver(this._checkForIntersections);\n this._domObserver.observe(document, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @private\n */\nIntersectionObserver.prototype._unmonitorIntersections = function() {\n if (this._monitoringIntersections) {\n this._monitoringIntersections = false;\n\n clearInterval(this._monitoringInterval);\n this._monitoringInterval = null;\n\n removeEvent(window, 'resize', this._checkForIntersections, true);\n removeEvent(document, 'scroll', this._checkForIntersections, true);\n\n if (this._domObserver) {\n this._domObserver.disconnect();\n this._domObserver = null;\n }\n }\n};\n\n\n/**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\nIntersectionObserver.prototype._checkForIntersections = function() {\n var rootIsInDom = this._rootIsInDom();\n var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n\n this._observationTargets.forEach(function(item) {\n var target = item.element;\n var targetRect = getBoundingClientRect(target);\n var rootContainsTarget = this._rootContainsTarget(target);\n var oldEntry = item.entry;\n var intersectionRect = rootIsInDom && rootContainsTarget &&\n this._computeTargetAndRootIntersection(target, rootRect);\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: rootRect,\n intersectionRect: intersectionRect\n });\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry);\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry);\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry);\n }\n }\n }, this);\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this);\n }\n};\n\n\n/**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\nIntersectionObserver.prototype._computeTargetAndRootIntersection =\n function(target, rootRect) {\n\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n\n var targetRect = getBoundingClientRect(target);\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot) {\n var parentRect = null;\n var parentComputedStyle = parent.nodeType == 1 ?\n window.getComputedStyle(parent) : {};\n\n // If the parent isn't displayed, an intersection can't happen.\n if (parentComputedStyle.display == 'none') return;\n\n if (parent == this.root || parent == document) {\n atRoot = true;\n parentRect = rootRect;\n } else {\n // If the element has a non-visible overflow, and it's not the \n // or element, update the intersection rect.\n // Note: and cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n if (parent != document.body &&\n parent != document.documentElement &&\n parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent);\n }\n }\n\n // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n\n if (!intersectionRect) break;\n }\n parent = getParentNode(parent);\n }\n return intersectionRect;\n};\n\n\n/**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {Object} The expanded root rect.\n * @private\n */\nIntersectionObserver.prototype._getRootRect = function() {\n var rootRect;\n if (this.root) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use / instead of window since scroll bars affect size.\n var html = document.documentElement;\n var body = document.body;\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n };\n }\n return this._expandRectByRootMargin(rootRect);\n};\n\n\n/**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {Object} rect The rect object to expand.\n * @return {Object} The expanded rect.\n * @private\n */\nIntersectionObserver.prototype._expandRectByRootMargin = function(rect) {\n var margins = this._rootMarginValues.map(function(margin, i) {\n return margin.unit == 'px' ? margin.value :\n margin.value * (i % 2 ? rect.width : rect.height) / 100;\n });\n var newRect = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n };\n newRect.width = newRect.right - newRect.left;\n newRect.height = newRect.bottom - newRect.top;\n\n return newRect;\n};\n\n\n/**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\nIntersectionObserver.prototype._hasCrossedThreshold =\n function(oldEntry, newEntry) {\n\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n var oldRatio = oldEntry && oldEntry.isIntersecting ?\n oldEntry.intersectionRatio || 0 : -1;\n var newRatio = newEntry.isIntersecting ?\n newEntry.intersectionRatio || 0 : -1;\n\n // Ignore unchanged ratios\n if (oldRatio === newRatio) return;\n\n for (var i = 0; i < this.thresholds.length; i++) {\n var threshold = this.thresholds[i];\n\n // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n if (threshold == oldRatio || threshold == newRatio ||\n threshold < oldRatio !== threshold < newRatio) {\n return true;\n }\n }\n};\n\n\n/**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\nIntersectionObserver.prototype._rootIsInDom = function() {\n return !this.root || containsDeep(document, this.root);\n};\n\n\n/**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\nIntersectionObserver.prototype._rootContainsTarget = function(target) {\n return containsDeep(this.root || document, target);\n};\n\n\n/**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\nIntersectionObserver.prototype._registerInstance = function() {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n};\n\n\n/**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\nIntersectionObserver.prototype._unregisterInstance = function() {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n};\n\n\n/**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\nfunction now() {\n return window.performance && performance.now && performance.now();\n}\n\n\n/**\n * Throttles a function and delays its execution, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\nfunction throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function() {\n fn();\n timer = null;\n }, timeout);\n }\n };\n}\n\n\n/**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\nfunction addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\nfunction removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.detatchEvent == 'function') {\n node.detatchEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object} The intersection rect or undefined if no intersection\n * is found.\n */\nfunction computeRectIntersection(rect1, rect2) {\n var top = Math.max(rect1.top, rect2.top);\n var bottom = Math.min(rect1.bottom, rect2.bottom);\n var left = Math.max(rect1.left, rect2.left);\n var right = Math.min(rect1.right, rect2.right);\n var width = right - left;\n var height = bottom - top;\n\n return (width >= 0 && height >= 0) && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n };\n}\n\n\n/**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {Object} The (possibly shimmed) rect of the element.\n */\nfunction getBoundingClientRect(el) {\n var rect;\n\n try {\n rect = el.getBoundingClientRect();\n } catch (err) {\n // Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect();\n\n // Older IE\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n }\n return rect;\n}\n\n\n/**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {Object} The empty rect.\n */\nfunction getEmptyRect() {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n };\n}\n\n/**\n * Checks to see if a parent element contains a child element (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\nfunction containsDeep(parent, child) {\n var node = child;\n while (node) {\n if (node == parent) return true;\n\n node = getParentNode(node);\n }\n return false;\n}\n\n\n/**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\nfunction getParentNode(node) {\n var parent = node.parentNode;\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host;\n }\n return parent;\n}\n\n\n// Exposes the constructors globally.\nwindow.IntersectionObserver = IntersectionObserver;\nwindow.IntersectionObserverEntry = IntersectionObserverEntry;\n\n}(window, document));\n","/*! picturefill - v3.0.2 - 2016-02-12\n * https://scottjehl.github.io/picturefill/\n * Copyright (c) 2016 https://github.com/scottjehl/picturefill/blob/master/Authors.txt; Licensed MIT\n */\n/*! Gecko-Picture - v1.0\n * https://github.com/scottjehl/picturefill/tree/3.0/src/plugins/gecko-picture\n * Firefox's early picture implementation (prior to FF41) is static and does\n * not react to viewport changes. This tiny module fixes this.\n */\n(function(window) {\n\t/*jshint eqnull:true */\n\tvar ua = navigator.userAgent;\n\n\tif ( window.HTMLPictureElement && ((/ecko/).test(ua) && ua.match(/rv\\:(\\d+)/) && RegExp.$1 < 45) ) {\n\t\taddEventListener(\"resize\", (function() {\n\t\t\tvar timer;\n\n\t\t\tvar dummySrc = document.createElement(\"source\");\n\n\t\t\tvar fixRespimg = function(img) {\n\t\t\t\tvar source, sizes;\n\t\t\t\tvar picture = img.parentNode;\n\n\t\t\t\tif (picture.nodeName.toUpperCase() === \"PICTURE\") {\n\t\t\t\t\tsource = dummySrc.cloneNode();\n\n\t\t\t\t\tpicture.insertBefore(source, picture.firstElementChild);\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\tpicture.removeChild(source);\n\t\t\t\t\t});\n\t\t\t\t} else if (!img._pfLastSize || img.offsetWidth > img._pfLastSize) {\n\t\t\t\t\timg._pfLastSize = img.offsetWidth;\n\t\t\t\t\tsizes = img.sizes;\n\t\t\t\t\timg.sizes += \",100vw\";\n\t\t\t\t\tsetTimeout(function() {\n\t\t\t\t\t\timg.sizes = sizes;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar findPictureImgs = function() {\n\t\t\t\tvar i;\n\t\t\t\tvar imgs = document.querySelectorAll(\"picture > img, img[srcset][sizes]\");\n\t\t\t\tfor (i = 0; i < imgs.length; i++) {\n\t\t\t\t\tfixRespimg(imgs[i]);\n\t\t\t\t}\n\t\t\t};\n\t\t\tvar onResize = function() {\n\t\t\t\tclearTimeout(timer);\n\t\t\t\ttimer = setTimeout(findPictureImgs, 99);\n\t\t\t};\n\t\t\tvar mq = window.matchMedia && matchMedia(\"(orientation: landscape)\");\n\t\t\tvar init = function() {\n\t\t\t\tonResize();\n\n\t\t\t\tif (mq && mq.addListener) {\n\t\t\t\t\tmq.addListener(onResize);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tdummySrc.srcset = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n\n\t\t\tif (/^[c|i]|d$/.test(document.readyState || \"\")) {\n\t\t\t\tinit();\n\t\t\t} else {\n\t\t\t\tdocument.addEventListener(\"DOMContentLoaded\", init);\n\t\t\t}\n\n\t\t\treturn onResize;\n\t\t})());\n\t}\n})(window);\n\n/*! Picturefill - v3.0.2\n * http://scottjehl.github.io/picturefill\n * Copyright (c) 2015 https://github.com/scottjehl/picturefill/blob/master/Authors.txt;\n * License: MIT\n */\n\n(function( window, document, undefined ) {\n\t// Enable strict mode\n\t\"use strict\";\n\n\t// HTML shim|v it for old IE (IE9 will still need the HTML video tag workaround)\n\tdocument.createElement( \"picture\" );\n\n\tvar warn, eminpx, alwaysCheckWDescriptor, evalId;\n\t// local object for method references and testing exposure\n\tvar pf = {};\n\tvar isSupportTestReady = false;\n\tvar noop = function() {};\n\tvar image = document.createElement( \"img\" );\n\tvar getImgAttr = image.getAttribute;\n\tvar setImgAttr = image.setAttribute;\n\tvar removeImgAttr = image.removeAttribute;\n\tvar docElem = document.documentElement;\n\tvar types = {};\n\tvar cfg = {\n\t\t//resource selection:\n\t\talgorithm: \"\"\n\t};\n\tvar srcAttr = \"data-pfsrc\";\n\tvar srcsetAttr = srcAttr + \"set\";\n\t// ua sniffing is done for undetectable img loading features,\n\t// to do some non crucial perf optimizations\n\tvar ua = navigator.userAgent;\n\tvar supportAbort = (/rident/).test(ua) || ((/ecko/).test(ua) && ua.match(/rv\\:(\\d+)/) && RegExp.$1 > 35 );\n\tvar curSrcProp = \"currentSrc\";\n\tvar regWDesc = /\\s+\\+?\\d+(e\\d+)?w/;\n\tvar regSize = /(\\([^)]+\\))?\\s*(.+)/;\n\tvar setOptions = window.picturefillCFG;\n\t/**\n\t * Shortcut property for https://w3c.github.io/webappsec/specs/mixedcontent/#restricts-mixed-content ( for easy overriding in tests )\n\t */\n\t// baseStyle also used by getEmValue (i.e.: width: 1em is important)\n\tvar baseStyle = \"position:absolute;left:0;visibility:hidden;display:block;padding:0;border:none;font-size:1em;width:1em;overflow:hidden;clip:rect(0px, 0px, 0px, 0px)\";\n\tvar fsCss = \"font-size:100%!important;\";\n\tvar isVwDirty = true;\n\n\tvar cssCache = {};\n\tvar sizeLengthCache = {};\n\tvar DPR = window.devicePixelRatio;\n\tvar units = {\n\t\tpx: 1,\n\t\t\"in\": 96\n\t};\n\tvar anchor = document.createElement( \"a\" );\n\t/**\n\t * alreadyRun flag used for setOptions. is it true setOptions will reevaluate\n\t * @type {boolean}\n\t */\n\tvar alreadyRun = false;\n\n\t// Reusable, non-\"g\" Regexes\n\n\t// (Don't use \\s, to avoid matching non-breaking space.)\n\tvar regexLeadingSpaces = /^[ \\t\\n\\r\\u000c]+/,\n\t regexLeadingCommasOrSpaces = /^[, \\t\\n\\r\\u000c]+/,\n\t regexLeadingNotSpaces = /^[^ \\t\\n\\r\\u000c]+/,\n\t regexTrailingCommas = /[,]+$/,\n\t regexNonNegativeInteger = /^\\d+$/,\n\n\t // ( Positive or negative or unsigned integers or decimals, without or without exponents.\n\t // Must include at least one digit.\n\t // According to spec tests any decimal point must be followed by a digit.\n\t // No leading plus sign is allowed.)\n\t // https://html.spec.whatwg.org/multipage/infrastructure.html#valid-floating-point-number\n\t regexFloatingPoint = /^-?(?:[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/;\n\n\tvar on = function(obj, evt, fn, capture) {\n\t\tif ( obj.addEventListener ) {\n\t\t\tobj.addEventListener(evt, fn, capture || false);\n\t\t} else if ( obj.attachEvent ) {\n\t\t\tobj.attachEvent( \"on\" + evt, fn);\n\t\t}\n\t};\n\n\t/**\n\t * simple memoize function:\n\t */\n\n\tvar memoize = function(fn) {\n\t\tvar cache = {};\n\t\treturn function(input) {\n\t\t\tif ( !(input in cache) ) {\n\t\t\t\tcache[ input ] = fn(input);\n\t\t\t}\n\t\t\treturn cache[ input ];\n\t\t};\n\t};\n\n\t// UTILITY FUNCTIONS\n\n\t// Manual is faster than RegEx\n\t// http://jsperf.com/whitespace-character/5\n\tfunction isSpace(c) {\n\t\treturn (c === \"\\u0020\" || // space\n\t\t c === \"\\u0009\" || // horizontal tab\n\t\t c === \"\\u000A\" || // new line\n\t\t c === \"\\u000C\" || // form feed\n\t\t c === \"\\u000D\"); // carriage return\n\t}\n\n\t/**\n\t * gets a mediaquery and returns a boolean or gets a css length and returns a number\n\t * @param css mediaqueries or css length\n\t * @returns {boolean|number}\n\t *\n\t * based on: https://gist.github.com/jonathantneal/db4f77009b155f083738\n\t */\n\tvar evalCSS = (function() {\n\n\t\tvar regLength = /^([\\d\\.]+)(em|vw|px)$/;\n\t\tvar replace = function() {\n\t\t\tvar args = arguments, index = 0, string = args[0];\n\t\t\twhile (++index in args) {\n\t\t\t\tstring = string.replace(args[index], args[++index]);\n\t\t\t}\n\t\t\treturn string;\n\t\t};\n\n\t\tvar buildStr = memoize(function(css) {\n\n\t\t\treturn \"return \" + replace((css || \"\").toLowerCase(),\n\t\t\t\t// interpret `and`\n\t\t\t\t/\\band\\b/g, \"&&\",\n\n\t\t\t\t// interpret `,`\n\t\t\t\t/,/g, \"||\",\n\n\t\t\t\t// interpret `min-` as >=\n\t\t\t\t/min-([a-z-\\s]+):/g, \"e.$1>=\",\n\n\t\t\t\t// interpret `max-` as <=\n\t\t\t\t/max-([a-z-\\s]+):/g, \"e.$1<=\",\n\n\t\t\t\t//calc value\n\t\t\t\t/calc([^)]+)/g, \"($1)\",\n\n\t\t\t\t// interpret css values\n\t\t\t\t/(\\d+[\\.]*[\\d]*)([a-z]+)/g, \"($1 * e.$2)\",\n\t\t\t\t//make eval less evil\n\t\t\t\t/^(?!(e.[a-z]|[0-9\\.&=|><\\+\\-\\*\\(\\)\\/])).*/ig, \"\"\n\t\t\t) + \";\";\n\t\t});\n\n\t\treturn function(css, length) {\n\t\t\tvar parsedLength;\n\t\t\tif (!(css in cssCache)) {\n\t\t\t\tcssCache[css] = false;\n\t\t\t\tif (length && (parsedLength = css.match( regLength ))) {\n\t\t\t\t\tcssCache[css] = parsedLength[ 1 ] * units[parsedLength[ 2 ]];\n\t\t\t\t} else {\n\t\t\t\t\t/*jshint evil:true */\n\t\t\t\t\ttry{\n\t\t\t\t\t\tcssCache[css] = new Function(\"e\", buildStr(css))(units);\n\t\t\t\t\t} catch(e) {}\n\t\t\t\t\t/*jshint evil:false */\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn cssCache[css];\n\t\t};\n\t})();\n\n\tvar setResolution = function( candidate, sizesattr ) {\n\t\tif ( candidate.w ) { // h = means height: || descriptor.type === 'h' do not handle yet...\n\t\t\tcandidate.cWidth = pf.calcListLength( sizesattr || \"100vw\" );\n\t\t\tcandidate.res = candidate.w / candidate.cWidth ;\n\t\t} else {\n\t\t\tcandidate.res = candidate.d;\n\t\t}\n\t\treturn candidate;\n\t};\n\n\t/**\n\t *\n\t * @param opt\n\t */\n\tvar picturefill = function( opt ) {\n\n\t\tif (!isSupportTestReady) {return;}\n\n\t\tvar elements, i, plen;\n\n\t\tvar options = opt || {};\n\n\t\tif ( options.elements && options.elements.nodeType === 1 ) {\n\t\t\tif ( options.elements.nodeName.toUpperCase() === \"IMG\" ) {\n\t\t\t\toptions.elements = [ options.elements ];\n\t\t\t} else {\n\t\t\t\toptions.context = options.elements;\n\t\t\t\toptions.elements = null;\n\t\t\t}\n\t\t}\n\n\t\telements = options.elements || pf.qsa( (options.context || document), ( options.reevaluate || options.reselect ) ? pf.sel : pf.selShort );\n\n\t\tif ( (plen = elements.length) ) {\n\n\t\t\tpf.setupRun( options );\n\t\t\talreadyRun = true;\n\n\t\t\t// Loop through all elements\n\t\t\tfor ( i = 0; i < plen; i++ ) {\n\t\t\t\tpf.fillImg(elements[ i ], options);\n\t\t\t}\n\n\t\t\tpf.teardownRun( options );\n\t\t}\n\t};\n\n\t/**\n\t * outputs a warning for the developer\n\t * @param {message}\n\t * @type {Function}\n\t */\n\twarn = ( window.console && console.warn ) ?\n\t\tfunction( message ) {\n\t\t\tconsole.warn( message );\n\t\t} :\n\t\tnoop\n\t;\n\n\tif ( !(curSrcProp in image) ) {\n\t\tcurSrcProp = \"src\";\n\t}\n\n\t// Add support for standard mime types.\n\ttypes[ \"image/jpeg\" ] = true;\n\ttypes[ \"image/gif\" ] = true;\n\ttypes[ \"image/png\" ] = true;\n\n\tfunction detectTypeSupport( type, typeUri ) {\n\t\t// based on Modernizr's lossless img-webp test\n\t\t// note: asynchronous\n\t\tvar image = new window.Image();\n\t\timage.onerror = function() {\n\t\t\ttypes[ type ] = false;\n\t\t\tpicturefill();\n\t\t};\n\t\timage.onload = function() {\n\t\t\ttypes[ type ] = image.width === 1;\n\t\t\tpicturefill();\n\t\t};\n\t\timage.src = typeUri;\n\t\treturn \"pending\";\n\t}\n\n\t// test svg support\n\ttypes[ \"image/svg+xml\" ] = document.implementation.hasFeature( \"http://www.w3.org/TR/SVG11/feature#Image\", \"1.1\" );\n\n\t/**\n\t * updates the internal vW property with the current viewport width in px\n\t */\n\tfunction updateMetrics() {\n\n\t\tisVwDirty = false;\n\t\tDPR = window.devicePixelRatio;\n\t\tcssCache = {};\n\t\tsizeLengthCache = {};\n\n\t\tpf.DPR = DPR || 1;\n\n\t\tunits.width = Math.max(window.innerWidth || 0, docElem.clientWidth);\n\t\tunits.height = Math.max(window.innerHeight || 0, docElem.clientHeight);\n\n\t\tunits.vw = units.width / 100;\n\t\tunits.vh = units.height / 100;\n\n\t\tevalId = [ units.height, units.width, DPR ].join(\"-\");\n\n\t\tunits.em = pf.getEmValue();\n\t\tunits.rem = units.em;\n\t}\n\n\tfunction chooseLowRes( lowerValue, higherValue, dprValue, isCached ) {\n\t\tvar bonusFactor, tooMuch, bonus, meanDensity;\n\n\t\t//experimental\n\t\tif (cfg.algorithm === \"saveData\" ){\n\t\t\tif ( lowerValue > 2.7 ) {\n\t\t\t\tmeanDensity = dprValue + 1;\n\t\t\t} else {\n\t\t\t\ttooMuch = higherValue - dprValue;\n\t\t\t\tbonusFactor = Math.pow(lowerValue - 0.6, 1.5);\n\n\t\t\t\tbonus = tooMuch * bonusFactor;\n\n\t\t\t\tif (isCached) {\n\t\t\t\t\tbonus += 0.1 * bonusFactor;\n\t\t\t\t}\n\n\t\t\t\tmeanDensity = lowerValue + bonus;\n\t\t\t}\n\t\t} else {\n\t\t\tmeanDensity = (dprValue > 1) ?\n\t\t\t\tMath.sqrt(lowerValue * higherValue) :\n\t\t\t\tlowerValue;\n\t\t}\n\n\t\treturn meanDensity > dprValue;\n\t}\n\n\tfunction applyBestCandidate( img ) {\n\t\tvar srcSetCandidates;\n\t\tvar matchingSet = pf.getSet( img );\n\t\tvar evaluated = false;\n\t\tif ( matchingSet !== \"pending\" ) {\n\t\t\tevaluated = evalId;\n\t\t\tif ( matchingSet ) {\n\t\t\t\tsrcSetCandidates = pf.setRes( matchingSet );\n\t\t\t\tpf.applySetCandidate( srcSetCandidates, img );\n\t\t\t}\n\t\t}\n\t\timg[ pf.ns ].evaled = evaluated;\n\t}\n\n\tfunction ascendingSort( a, b ) {\n\t\treturn a.res - b.res;\n\t}\n\n\tfunction setSrcToCur( img, src, set ) {\n\t\tvar candidate;\n\t\tif ( !set && src ) {\n\t\t\tset = img[ pf.ns ].sets;\n\t\t\tset = set && set[set.length - 1];\n\t\t}\n\n\t\tcandidate = getCandidateForSrc(src, set);\n\n\t\tif ( candidate ) {\n\t\t\tsrc = pf.makeUrl(src);\n\t\t\timg[ pf.ns ].curSrc = src;\n\t\t\timg[ pf.ns ].curCan = candidate;\n\n\t\t\tif ( !candidate.res ) {\n\t\t\t\tsetResolution( candidate, candidate.set.sizes );\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\n\tfunction getCandidateForSrc( src, set ) {\n\t\tvar i, candidate, candidates;\n\t\tif ( src && set ) {\n\t\t\tcandidates = pf.parseSet( set );\n\t\t\tsrc = pf.makeUrl(src);\n\t\t\tfor ( i = 0; i < candidates.length; i++ ) {\n\t\t\t\tif ( src === pf.makeUrl(candidates[ i ].url) ) {\n\t\t\t\t\tcandidate = candidates[ i ];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn candidate;\n\t}\n\n\tfunction getAllSourceElements( picture, candidates ) {\n\t\tvar i, len, source, srcset;\n\n\t\t// SPEC mismatch intended for size and perf:\n\t\t// actually only source elements preceding the img should be used\n\t\t// also note: don't use qsa here, because IE8 sometimes doesn't like source as the key part in a selector\n\t\tvar sources = picture.getElementsByTagName( \"source\" );\n\n\t\tfor ( i = 0, len = sources.length; i < len; i++ ) {\n\t\t\tsource = sources[ i ];\n\t\t\tsource[ pf.ns ] = true;\n\t\t\tsrcset = source.getAttribute( \"srcset\" );\n\n\t\t\t// if source does not have a srcset attribute, skip\n\t\t\tif ( srcset ) {\n\t\t\t\tcandidates.push( {\n\t\t\t\t\tsrcset: srcset,\n\t\t\t\t\tmedia: source.getAttribute( \"media\" ),\n\t\t\t\t\ttype: source.getAttribute( \"type\" ),\n\t\t\t\t\tsizes: source.getAttribute( \"sizes\" )\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Srcset Parser\n\t * By Alex Bell | MIT License\n\t *\n\t * @returns Array [{url: _, d: _, w: _, h:_, set:_(????)}, ...]\n\t *\n\t * Based super duper closely on the reference algorithm at:\n\t * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-srcset-attribute\n\t */\n\n\t// 1. Let input be the value passed to this algorithm.\n\t// (TO-DO : Explain what \"set\" argument is here. Maybe choose a more\n\t// descriptive & more searchable name. Since passing the \"set\" in really has\n\t// nothing to do with parsing proper, I would prefer this assignment eventually\n\t// go in an external fn.)\n\tfunction parseSrcset(input, set) {\n\n\t\tfunction collectCharacters(regEx) {\n\t\t\tvar chars,\n\t\t\t match = regEx.exec(input.substring(pos));\n\t\t\tif (match) {\n\t\t\t\tchars = match[ 0 ];\n\t\t\t\tpos += chars.length;\n\t\t\t\treturn chars;\n\t\t\t}\n\t\t}\n\n\t\tvar inputLength = input.length,\n\t\t url,\n\t\t descriptors,\n\t\t currentDescriptor,\n\t\t state,\n\t\t c,\n\n\t\t // 2. Let position be a pointer into input, initially pointing at the start\n\t\t // of the string.\n\t\t pos = 0,\n\n\t\t // 3. Let candidates be an initially empty source set.\n\t\t candidates = [];\n\n\t\t/**\n\t\t* Adds descriptor properties to a candidate, pushes to the candidates array\n\t\t* @return undefined\n\t\t*/\n\t\t// (Declared outside of the while loop so that it's only created once.\n\t\t// (This fn is defined before it is used, in order to pass JSHINT.\n\t\t// Unfortunately this breaks the sequencing of the spec comments. :/ )\n\t\tfunction parseDescriptors() {\n\n\t\t\t// 9. Descriptor parser: Let error be no.\n\t\t\tvar pError = false,\n\n\t\t\t// 10. Let width be absent.\n\t\t\t// 11. Let density be absent.\n\t\t\t// 12. Let future-compat-h be absent. (We're implementing it now as h)\n\t\t\t w, d, h, i,\n\t\t\t candidate = {},\n\t\t\t desc, lastChar, value, intVal, floatVal;\n\n\t\t\t// 13. For each descriptor in descriptors, run the appropriate set of steps\n\t\t\t// from the following list:\n\t\t\tfor (i = 0 ; i < descriptors.length; i++) {\n\t\t\t\tdesc = descriptors[ i ];\n\n\t\t\t\tlastChar = desc[ desc.length - 1 ];\n\t\t\t\tvalue = desc.substring(0, desc.length - 1);\n\t\t\t\tintVal = parseInt(value, 10);\n\t\t\t\tfloatVal = parseFloat(value);\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0077 LATIN SMALL LETTER W character\n\t\t\t\tif (regexNonNegativeInteger.test(value) && (lastChar === \"w\")) {\n\n\t\t\t\t\t// If width and density are not both absent, then let error be yes.\n\t\t\t\t\tif (w || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes.\n\t\t\t\t\t// Otherwise, let width be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {w = intVal;}\n\n\t\t\t\t// If the descriptor consists of a valid floating-point number followed by\n\t\t\t\t// a U+0078 LATIN SMALL LETTER X character\n\t\t\t\t} else if (regexFloatingPoint.test(value) && (lastChar === \"x\")) {\n\n\t\t\t\t\t// If width, density and future-compat-h are not all absent, then let error\n\t\t\t\t\t// be yes.\n\t\t\t\t\tif (w || d || h) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing floating-point number values to the descriptor.\n\t\t\t\t\t// If the result is less than zero, let error be yes. Otherwise, let density\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (floatVal < 0) {pError = true;} else {d = floatVal;}\n\n\t\t\t\t// If the descriptor consists of a valid non-negative integer followed by\n\t\t\t\t// a U+0068 LATIN SMALL LETTER H character\n\t\t\t\t} else if (regexNonNegativeInteger.test(value) && (lastChar === \"h\")) {\n\n\t\t\t\t\t// If height and density are not both absent, then let error be yes.\n\t\t\t\t\tif (h || d) {pError = true;}\n\n\t\t\t\t\t// Apply the rules for parsing non-negative integers to the descriptor.\n\t\t\t\t\t// If the result is zero, let error be yes. Otherwise, let future-compat-h\n\t\t\t\t\t// be the result.\n\t\t\t\t\tif (intVal === 0) {pError = true;} else {h = intVal;}\n\n\t\t\t\t// Anything else, Let error be yes.\n\t\t\t\t} else {pError = true;}\n\t\t\t} // (close step 13 for loop)\n\n\t\t\t// 15. If error is still no, then append a new image source to candidates whose\n\t\t\t// URL is url, associated with a width width if not absent and a pixel\n\t\t\t// density density if not absent. Otherwise, there is a parse error.\n\t\t\tif (!pError) {\n\t\t\t\tcandidate.url = url;\n\n\t\t\t\tif (w) { candidate.w = w;}\n\t\t\t\tif (d) { candidate.d = d;}\n\t\t\t\tif (h) { candidate.h = h;}\n\t\t\t\tif (!h && !d && !w) {candidate.d = 1;}\n\t\t\t\tif (candidate.d === 1) {set.has1x = true;}\n\t\t\t\tcandidate.set = set;\n\n\t\t\t\tcandidates.push(candidate);\n\t\t\t}\n\t\t} // (close parseDescriptors fn)\n\n\t\t/**\n\t\t* Tokenizes descriptor properties prior to parsing\n\t\t* Returns undefined.\n\t\t* (Again, this fn is defined before it is used, in order to pass JSHINT.\n\t\t* Unfortunately this breaks the logical sequencing of the spec comments. :/ )\n\t\t*/\n\t\tfunction tokenize() {\n\n\t\t\t// 8.1. Descriptor tokeniser: Skip whitespace\n\t\t\tcollectCharacters(regexLeadingSpaces);\n\n\t\t\t// 8.2. Let current descriptor be the empty string.\n\t\t\tcurrentDescriptor = \"\";\n\n\t\t\t// 8.3. Let state be in descriptor.\n\t\t\tstate = \"in descriptor\";\n\n\t\t\twhile (true) {\n\n\t\t\t\t// 8.4. Let c be the character at position.\n\t\t\t\tc = input.charAt(pos);\n\n\t\t\t\t// Do the following depending on the value of state.\n\t\t\t\t// For the purpose of this step, \"EOF\" is a special character representing\n\t\t\t\t// that position is past the end of input.\n\n\t\t\t\t// In descriptor\n\t\t\t\tif (state === \"in descriptor\") {\n\t\t\t\t\t// Do the following, depending on the value of c:\n\n\t\t\t\t // Space character\n\t\t\t\t // If current descriptor is not empty, append current descriptor to\n\t\t\t\t // descriptors and let current descriptor be the empty string.\n\t\t\t\t // Set state to after descriptor.\n\t\t\t\t\tif (isSpace(c)) {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t\tcurrentDescriptor = \"\";\n\t\t\t\t\t\t\tstate = \"after descriptor\";\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// U+002C COMMA (,)\n\t\t\t\t\t// Advance position to the next character in input. If current descriptor\n\t\t\t\t\t// is not empty, append current descriptor to descriptors. Jump to the step\n\t\t\t\t\t// labeled descriptor parser.\n\t\t\t\t\t} else if (c === \",\") {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// U+0028 LEFT PARENTHESIS (()\n\t\t\t\t\t// Append c to current descriptor. Set state to in parens.\n\t\t\t\t\t} else if (c === \"\\u0028\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in parens\";\n\n\t\t\t\t\t// EOF\n\t\t\t\t\t// If current descriptor is not empty, append current descriptor to\n\t\t\t\t\t// descriptors. Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tif (currentDescriptor) {\n\t\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\t\t\t\t// (end \"in descriptor\"\n\n\t\t\t\t// In parens\n\t\t\t\t} else if (state === \"in parens\") {\n\n\t\t\t\t\t// U+0029 RIGHT PARENTHESIS ())\n\t\t\t\t\t// Append c to current descriptor. Set state to in descriptor.\n\t\t\t\t\tif (c === \")\") {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t\tstate = \"in descriptor\";\n\n\t\t\t\t\t// EOF\n\t\t\t\t\t// Append current descriptor to descriptors. Jump to the step labeled\n\t\t\t\t\t// descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tdescriptors.push(currentDescriptor);\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Append c to current descriptor.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcurrentDescriptor = currentDescriptor + c;\n\t\t\t\t\t}\n\n\t\t\t\t// After descriptor\n\t\t\t\t} else if (state === \"after descriptor\") {\n\n\t\t\t\t\t// Do the following, depending on the value of c:\n\t\t\t\t\t// Space character: Stay in this state.\n\t\t\t\t\tif (isSpace(c)) {\n\n\t\t\t\t\t// EOF: Jump to the step labeled descriptor parser.\n\t\t\t\t\t} else if (c === \"\") {\n\t\t\t\t\t\tparseDescriptors();\n\t\t\t\t\t\treturn;\n\n\t\t\t\t\t// Anything else\n\t\t\t\t\t// Set state to in descriptor. Set position to the previous character in input.\n\t\t\t\t\t} else {\n\t\t\t\t\t\tstate = \"in descriptor\";\n\t\t\t\t\t\tpos -= 1;\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Advance position to the next character in input.\n\t\t\t\tpos += 1;\n\n\t\t\t// Repeat this step.\n\t\t\t} // (close while true loop)\n\t\t}\n\n\t\t// 4. Splitting loop: Collect a sequence of characters that are space\n\t\t// characters or U+002C COMMA characters. If any U+002C COMMA characters\n\t\t// were collected, that is a parse error.\n\t\twhile (true) {\n\t\t\tcollectCharacters(regexLeadingCommasOrSpaces);\n\n\t\t\t// 5. If position is past the end of input, return candidates and abort these steps.\n\t\t\tif (pos >= inputLength) {\n\t\t\t\treturn candidates; // (we're done, this is the sole return path)\n\t\t\t}\n\n\t\t\t// 6. Collect a sequence of characters that are not space characters,\n\t\t\t// and let that be url.\n\t\t\turl = collectCharacters(regexLeadingNotSpaces);\n\n\t\t\t// 7. Let descriptors be a new empty list.\n\t\t\tdescriptors = [];\n\n\t\t\t// 8. If url ends with a U+002C COMMA character (,), follow these substeps:\n\t\t\t//\t\t(1). Remove all trailing U+002C COMMA characters from url. If this removed\n\t\t\t// more than one character, that is a parse error.\n\t\t\tif (url.slice(-1) === \",\") {\n\t\t\t\turl = url.replace(regexTrailingCommas, \"\");\n\t\t\t\t// (Jump ahead to step 9 to skip tokenization and just push the candidate).\n\t\t\t\tparseDescriptors();\n\n\t\t\t//\tOtherwise, follow these substeps:\n\t\t\t} else {\n\t\t\t\ttokenize();\n\t\t\t} // (close else of step 8)\n\n\t\t// 16. Return to the step labeled splitting loop.\n\t\t} // (Close of big while loop.)\n\t}\n\n\t/*\n\t * Sizes Parser\n\t *\n\t * By Alex Bell | MIT License\n\t *\n\t * Non-strict but accurate and lightweight JS Parser for the string value \n\t *\n\t * Reference algorithm at:\n\t * https://html.spec.whatwg.org/multipage/embedded-content.html#parse-a-sizes-attribute\n\t *\n\t * Most comments are copied in directly from the spec\n\t * (except for comments in parens).\n\t *\n\t * Grammar is:\n\t * = # [ , ]? | \n\t * = \n\t * = \n\t * http://www.w3.org/html/wg/drafts/html/master/embedded-content.html#attr-img-sizes\n\t *\n\t * E.g. \"(max-width: 30em) 100vw, (max-width: 50em) 70vw, 100vw\"\n\t * or \"(min-width: 30em), calc(30vw - 15px)\" or just \"30vw\"\n\t *\n\t * Returns the first valid with a media condition that evaluates to true,\n\t * or \"100vw\" if all valid media conditions evaluate to false.\n\t *\n\t */\n\n\tfunction parseSizes(strValue) {\n\n\t\t// (Percentage CSS lengths are not allowed in this case, to avoid confusion:\n\t\t// https://html.spec.whatwg.org/multipage/embedded-content.html#valid-source-size-list\n\t\t// CSS allows a single optional plus or minus sign:\n\t\t// http://www.w3.org/TR/CSS2/syndata.html#numbers\n\t\t// CSS is ASCII case-insensitive:\n\t\t// http://www.w3.org/TR/CSS2/syndata.html#characters )\n\t\t// Spec allows exponential notation for type:\n\t\t// http://dev.w3.org/csswg/css-values/#numbers\n\t\tvar regexCssLengthWithUnits = /^(?:[+-]?[0-9]+|[0-9]*\\.[0-9]+)(?:[eE][+-]?[0-9]+)?(?:ch|cm|em|ex|in|mm|pc|pt|px|rem|vh|vmin|vmax|vw)$/i;\n\n\t\t// (This is a quick and lenient test. Because of optional unlimited-depth internal\n\t\t// grouping parens and strict spacing rules, this could get very complicated.)\n\t\tvar regexCssCalc = /^calc\\((?:[0-9a-z \\.\\+\\-\\*\\/\\(\\)]+)\\)$/i;\n\n\t\tvar i;\n\t\tvar unparsedSizesList;\n\t\tvar unparsedSizesListLength;\n\t\tvar unparsedSize;\n\t\tvar lastComponentValue;\n\t\tvar size;\n\n\t\t// UTILITY FUNCTIONS\n\n\t\t// (Toy CSS parser. The goals here are:\n\t\t// 1) expansive test coverage without the weight of a full CSS parser.\n\t\t// 2) Avoiding regex wherever convenient.\n\t\t// Quick tests: http://jsfiddle.net/gtntL4gr/3/\n\t\t// Returns an array of arrays.)\n\t\tfunction parseComponentValues(str) {\n\t\t\tvar chrctr;\n\t\t\tvar component = \"\";\n\t\t\tvar componentArray = [];\n\t\t\tvar listArray = [];\n\t\t\tvar parenDepth = 0;\n\t\t\tvar pos = 0;\n\t\t\tvar inComment = false;\n\n\t\t\tfunction pushComponent() {\n\t\t\t\tif (component) {\n\t\t\t\t\tcomponentArray.push(component);\n\t\t\t\t\tcomponent = \"\";\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction pushComponentArray() {\n\t\t\t\tif (componentArray[0]) {\n\t\t\t\t\tlistArray.push(componentArray);\n\t\t\t\t\tcomponentArray = [];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// (Loop forwards from the beginning of the string.)\n\t\t\twhile (true) {\n\t\t\t\tchrctr = str.charAt(pos);\n\n\t\t\t\tif (chrctr === \"\") { // ( End of string reached.)\n\t\t\t\t\tpushComponent();\n\t\t\t\t\tpushComponentArray();\n\t\t\t\t\treturn listArray;\n\t\t\t\t} else if (inComment) {\n\t\t\t\t\tif ((chrctr === \"*\") && (str[pos + 1] === \"/\")) { // (At end of a comment.)\n\t\t\t\t\t\tinComment = false;\n\t\t\t\t\t\tpos += 2;\n\t\t\t\t\t\tpushComponent();\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpos += 1; // (Skip all characters inside comments.)\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t} else if (isSpace(chrctr)) {\n\t\t\t\t\t// (If previous character in loop was also a space, or if\n\t\t\t\t\t// at the beginning of the string, do not add space char to\n\t\t\t\t\t// component.)\n\t\t\t\t\tif ( (str.charAt(pos - 1) && isSpace( str.charAt(pos - 1) ) ) || !component ) {\n\t\t\t\t\t\tpos += 1;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else if (parenDepth === 0) {\n\t\t\t\t\t\tpushComponent();\n\t\t\t\t\t\tpos +=1;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// (Replace any space character with a plain space for legibility.)\n\t\t\t\t\t\tchrctr = \" \";\n\t\t\t\t\t}\n\t\t\t\t} else if (chrctr === \"(\") {\n\t\t\t\t\tparenDepth += 1;\n\t\t\t\t} else if (chrctr === \")\") {\n\t\t\t\t\tparenDepth -= 1;\n\t\t\t\t} else if (chrctr === \",\") {\n\t\t\t\t\tpushComponent();\n\t\t\t\t\tpushComponentArray();\n\t\t\t\t\tpos += 1;\n\t\t\t\t\tcontinue;\n\t\t\t\t} else if ( (chrctr === \"/\") && (str.charAt(pos + 1) === \"*\") ) {\n\t\t\t\t\tinComment = true;\n\t\t\t\t\tpos += 2;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tcomponent = component + chrctr;\n\t\t\t\tpos += 1;\n\t\t\t}\n\t\t}\n\n\t\tfunction isValidNonNegativeSourceSizeValue(s) {\n\t\t\tif (regexCssLengthWithUnits.test(s) && (parseFloat(s) >= 0)) {return true;}\n\t\t\tif (regexCssCalc.test(s)) {return true;}\n\t\t\t// ( http://www.w3.org/TR/CSS2/syndata.html#numbers says:\n\t\t\t// \"-0 is equivalent to 0 and is not a negative number.\" which means that\n\t\t\t// unitless zero and unitless negative zero must be accepted as special cases.)\n\t\t\tif ((s === \"0\") || (s === \"-0\") || (s === \"+0\")) {return true;}\n\t\t\treturn false;\n\t\t}\n\n\t\t// When asked to parse a sizes attribute from an element, parse a\n\t\t// comma-separated list of component values from the value of the element's\n\t\t// sizes attribute (or the empty string, if the attribute is absent), and let\n\t\t// unparsed sizes list be the result.\n\t\t// http://dev.w3.org/csswg/css-syntax/#parse-comma-separated-list-of-component-values\n\n\t\tunparsedSizesList = parseComponentValues(strValue);\n\t\tunparsedSizesListLength = unparsedSizesList.length;\n\n\t\t// For each unparsed size in unparsed sizes list:\n\t\tfor (i = 0; i < unparsedSizesListLength; i++) {\n\t\t\tunparsedSize = unparsedSizesList[i];\n\n\t\t\t// 1. Remove all consecutive s from the end of unparsed size.\n\t\t\t// ( parseComponentValues() already omits spaces outside of parens. )\n\n\t\t\t// If unparsed size is now empty, that is a parse error; continue to the next\n\t\t\t// iteration of this algorithm.\n\t\t\t// ( parseComponentValues() won't push an empty array. )\n\n\t\t\t// 2. If the last component value in unparsed size is a valid non-negative\n\t\t\t// , let size be its value and remove the component value\n\t\t\t// from unparsed size. Any CSS function other than the calc() function is\n\t\t\t// invalid. Otherwise, there is a parse error; continue to the next iteration\n\t\t\t// of this algorithm.\n\t\t\t// http://dev.w3.org/csswg/css-syntax/#parse-component-value\n\t\t\tlastComponentValue = unparsedSize[unparsedSize.length - 1];\n\n\t\t\tif (isValidNonNegativeSourceSizeValue(lastComponentValue)) {\n\t\t\t\tsize = lastComponentValue;\n\t\t\t\tunparsedSize.pop();\n\t\t\t} else {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// 3. Remove all consecutive s from the end of unparsed\n\t\t\t// size. If unparsed size is now empty, return size and exit this algorithm.\n\t\t\t// If this was not the last item in unparsed sizes list, that is a parse error.\n\t\t\tif (unparsedSize.length === 0) {\n\t\t\t\treturn size;\n\t\t\t}\n\n\t\t\t// 4. Parse the remaining component values in unparsed size as a\n\t\t\t// . If it does not parse correctly, or it does parse\n\t\t\t// correctly but the evaluates to false, continue to the\n\t\t\t// next iteration of this algorithm.\n\t\t\t// (Parsing all possible compound media conditions in JS is heavy, complicated,\n\t\t\t// and the payoff is unclear. Is there ever an situation where the\n\t\t\t// media condition parses incorrectly but still somehow evaluates to true?\n\t\t\t// Can we just rely on the browser/polyfill to do it?)\n\t\t\tunparsedSize = unparsedSize.join(\" \");\n\t\t\tif (!(pf.matchesMedia( unparsedSize ) ) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// 5. Return size and exit this algorithm.\n\t\t\treturn size;\n\t\t}\n\n\t\t// If the above algorithm exhausts unparsed sizes list without returning a\n\t\t// size value, return 100vw.\n\t\treturn \"100vw\";\n\t}\n\n\t// namespace\n\tpf.ns = (\"pf\" + new Date().getTime()).substr(0, 9);\n\n\t// srcset support test\n\tpf.supSrcset = \"srcset\" in image;\n\tpf.supSizes = \"sizes\" in image;\n\tpf.supPicture = !!window.HTMLPictureElement;\n\n\t// UC browser does claim to support srcset and picture, but not sizes,\n\t// this extended test reveals the browser does support nothing\n\tif (pf.supSrcset && pf.supPicture && !pf.supSizes) {\n\t\t(function(image2) {\n\t\t\timage.srcset = \"data:,a\";\n\t\t\timage2.src = \"data:,a\";\n\t\t\tpf.supSrcset = image.complete === image2.complete;\n\t\t\tpf.supPicture = pf.supSrcset && pf.supPicture;\n\t\t})(document.createElement(\"img\"));\n\t}\n\n\t// Safari9 has basic support for sizes, but does't expose the `sizes` idl attribute\n\tif (pf.supSrcset && !pf.supSizes) {\n\n\t\t(function() {\n\t\t\tvar width2 = \"data:image/gif;base64,R0lGODlhAgABAPAAAP///wAAACH5BAAAAAAALAAAAAACAAEAAAICBAoAOw==\";\n\t\t\tvar width1 = \"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\";\n\t\t\tvar img = document.createElement(\"img\");\n\t\t\tvar test = function() {\n\t\t\t\tvar width = img.width;\n\n\t\t\t\tif (width === 2) {\n\t\t\t\t\tpf.supSizes = true;\n\t\t\t\t}\n\n\t\t\t\talwaysCheckWDescriptor = pf.supSrcset && !pf.supSizes;\n\n\t\t\t\tisSupportTestReady = true;\n\t\t\t\t// force async\n\t\t\t\tsetTimeout(picturefill);\n\t\t\t};\n\n\t\t\timg.onload = test;\n\t\t\timg.onerror = test;\n\t\t\timg.setAttribute(\"sizes\", \"9px\");\n\n\t\t\timg.srcset = width1 + \" 1w,\" + width2 + \" 9w\";\n\t\t\timg.src = width1;\n\t\t})();\n\n\t} else {\n\t\tisSupportTestReady = true;\n\t}\n\n\t// using pf.qsa instead of dom traversing does scale much better,\n\t// especially on sites mixing responsive and non-responsive images\n\tpf.selShort = \"picture>img,img[srcset]\";\n\tpf.sel = pf.selShort;\n\tpf.cfg = cfg;\n\n\t/**\n\t * Shortcut property for `devicePixelRatio` ( for easy overriding in tests )\n\t */\n\tpf.DPR = (DPR || 1 );\n\tpf.u = units;\n\n\t// container of supported mime types that one might need to qualify before using\n\tpf.types = types;\n\n\tpf.setSize = noop;\n\n\t/**\n\t * Gets a string and returns the absolute URL\n\t * @param src\n\t * @returns {String} absolute URL\n\t */\n\n\tpf.makeUrl = memoize(function(src) {\n\t\tanchor.href = src;\n\t\treturn anchor.href;\n\t});\n\n\t/**\n\t * Gets a DOM element or document and a selctor and returns the found matches\n\t * Can be extended with jQuery/Sizzle for IE7 support\n\t * @param context\n\t * @param sel\n\t * @returns {NodeList|Array}\n\t */\n\tpf.qsa = function(context, sel) {\n\t\treturn ( \"querySelector\" in context ) ? context.querySelectorAll(sel) : [];\n\t};\n\n\t/**\n\t * Shortcut method for matchMedia ( for easy overriding in tests )\n\t * wether native or pf.mMQ is used will be decided lazy on first call\n\t * @returns {boolean}\n\t */\n\tpf.matchesMedia = function() {\n\t\tif ( window.matchMedia && (matchMedia( \"(min-width: 0.1em)\" ) || {}).matches ) {\n\t\t\tpf.matchesMedia = function( media ) {\n\t\t\t\treturn !media || ( matchMedia( media ).matches );\n\t\t\t};\n\t\t} else {\n\t\t\tpf.matchesMedia = pf.mMQ;\n\t\t}\n\n\t\treturn pf.matchesMedia.apply( this, arguments );\n\t};\n\n\t/**\n\t * A simplified matchMedia implementation for IE8 and IE9\n\t * handles only min-width/max-width with px or em values\n\t * @param media\n\t * @returns {boolean}\n\t */\n\tpf.mMQ = function( media ) {\n\t\treturn media ? evalCSS(media) : true;\n\t};\n\n\t/**\n\t * Returns the calculated length in css pixel from the given sourceSizeValue\n\t * http://dev.w3.org/csswg/css-values-3/#length-value\n\t * intended Spec mismatches:\n\t * * Does not check for invalid use of CSS functions\n\t * * Does handle a computed length of 0 the same as a negative and therefore invalid value\n\t * @param sourceSizeValue\n\t * @returns {Number}\n\t */\n\tpf.calcLength = function( sourceSizeValue ) {\n\n\t\tvar value = evalCSS(sourceSizeValue, true) || false;\n\t\tif (value < 0) {\n\t\t\tvalue = false;\n\t\t}\n\n\t\treturn value;\n\t};\n\n\t/**\n\t * Takes a type string and checks if its supported\n\t */\n\n\tpf.supportsType = function( type ) {\n\t\treturn ( type ) ? types[ type ] : true;\n\t};\n\n\t/**\n\t * Parses a sourceSize into mediaCondition (media) and sourceSizeValue (length)\n\t * @param sourceSizeStr\n\t * @returns {*}\n\t */\n\tpf.parseSize = memoize(function( sourceSizeStr ) {\n\t\tvar match = ( sourceSizeStr || \"\" ).match(regSize);\n\t\treturn {\n\t\t\tmedia: match && match[1],\n\t\t\tlength: match && match[2]\n\t\t};\n\t});\n\n\tpf.parseSet = function( set ) {\n\t\tif ( !set.cands ) {\n\t\t\tset.cands = parseSrcset(set.srcset, set);\n\t\t}\n\t\treturn set.cands;\n\t};\n\n\t/**\n\t * returns 1em in css px for html/body default size\n\t * function taken from respondjs\n\t * @returns {*|number}\n\t */\n\tpf.getEmValue = function() {\n\t\tvar body;\n\t\tif ( !eminpx && (body = document.body) ) {\n\t\t\tvar div = document.createElement( \"div\" ),\n\t\t\t\toriginalHTMLCSS = docElem.style.cssText,\n\t\t\t\toriginalBodyCSS = body.style.cssText;\n\n\t\t\tdiv.style.cssText = baseStyle;\n\n\t\t\t// 1em in a media query is the value of the default font size of the browser\n\t\t\t// reset docElem and body to ensure the correct value is returned\n\t\t\tdocElem.style.cssText = fsCss;\n\t\t\tbody.style.cssText = fsCss;\n\n\t\t\tbody.appendChild( div );\n\t\t\teminpx = div.offsetWidth;\n\t\t\tbody.removeChild( div );\n\n\t\t\t//also update eminpx before returning\n\t\t\teminpx = parseFloat( eminpx, 10 );\n\n\t\t\t// restore the original values\n\t\t\tdocElem.style.cssText = originalHTMLCSS;\n\t\t\tbody.style.cssText = originalBodyCSS;\n\n\t\t}\n\t\treturn eminpx || 16;\n\t};\n\n\t/**\n\t * Takes a string of sizes and returns the width in pixels as a number\n\t */\n\tpf.calcListLength = function( sourceSizeListStr ) {\n\t\t// Split up source size list, ie ( max-width: 30em ) 100%, ( max-width: 50em ) 50%, 33%\n\t\t//\n\t\t// or (min-width:30em) calc(30% - 15px)\n\t\tif ( !(sourceSizeListStr in sizeLengthCache) || cfg.uT ) {\n\t\t\tvar winningLength = pf.calcLength( parseSizes( sourceSizeListStr ) );\n\n\t\t\tsizeLengthCache[ sourceSizeListStr ] = !winningLength ? units.width : winningLength;\n\t\t}\n\n\t\treturn sizeLengthCache[ sourceSizeListStr ];\n\t};\n\n\t/**\n\t * Takes a candidate object with a srcset property in the form of url/\n\t * ex. \"images/pic-medium.png 1x, images/pic-medium-2x.png 2x\" or\n\t * \"images/pic-medium.png 400w, images/pic-medium-2x.png 800w\" or\n\t * \"images/pic-small.png\"\n\t * Get an array of image candidates in the form of\n\t * {url: \"/foo/bar.png\", resolution: 1}\n\t * where resolution is http://dev.w3.org/csswg/css-values-3/#resolution-value\n\t * If sizes is specified, res is calculated\n\t */\n\tpf.setRes = function( set ) {\n\t\tvar candidates;\n\t\tif ( set ) {\n\n\t\t\tcandidates = pf.parseSet( set );\n\n\t\t\tfor ( var i = 0, len = candidates.length; i < len; i++ ) {\n\t\t\t\tsetResolution( candidates[ i ], set.sizes );\n\t\t\t}\n\t\t}\n\t\treturn candidates;\n\t};\n\n\tpf.setRes.res = setResolution;\n\n\tpf.applySetCandidate = function( candidates, img ) {\n\t\tif ( !candidates.length ) {return;}\n\t\tvar candidate,\n\t\t\ti,\n\t\t\tj,\n\t\t\tlength,\n\t\t\tbestCandidate,\n\t\t\tcurSrc,\n\t\t\tcurCan,\n\t\t\tcandidateSrc,\n\t\t\tabortCurSrc;\n\n\t\tvar imageData = img[ pf.ns ];\n\t\tvar dpr = pf.DPR;\n\n\t\tcurSrc = imageData.curSrc || img[curSrcProp];\n\n\t\tcurCan = imageData.curCan || setSrcToCur(img, curSrc, candidates[0].set);\n\n\t\t// if we have a current source, we might either become lazy or give this source some advantage\n\t\tif ( curCan && curCan.set === candidates[ 0 ].set ) {\n\n\t\t\t// if browser can abort image request and the image has a higher pixel density than needed\n\t\t\t// and this image isn't downloaded yet, we skip next part and try to save bandwidth\n\t\t\tabortCurSrc = (supportAbort && !img.complete && curCan.res - 0.1 > dpr);\n\n\t\t\tif ( !abortCurSrc ) {\n\t\t\t\tcurCan.cached = true;\n\n\t\t\t\t// if current candidate is \"best\", \"better\" or \"okay\",\n\t\t\t\t// set it to bestCandidate\n\t\t\t\tif ( curCan.res >= dpr ) {\n\t\t\t\t\tbestCandidate = curCan;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( !bestCandidate ) {\n\n\t\t\tcandidates.sort( ascendingSort );\n\n\t\t\tlength = candidates.length;\n\t\t\tbestCandidate = candidates[ length - 1 ];\n\n\t\t\tfor ( i = 0; i < length; i++ ) {\n\t\t\t\tcandidate = candidates[ i ];\n\t\t\t\tif ( candidate.res >= dpr ) {\n\t\t\t\t\tj = i - 1;\n\n\t\t\t\t\t// we have found the perfect candidate,\n\t\t\t\t\t// but let's improve this a little bit with some assumptions ;-)\n\t\t\t\t\tif (candidates[ j ] &&\n\t\t\t\t\t\t(abortCurSrc || curSrc !== pf.makeUrl( candidate.url )) &&\n\t\t\t\t\t\tchooseLowRes(candidates[ j ].res, candidate.res, dpr, candidates[ j ].cached)) {\n\n\t\t\t\t\t\tbestCandidate = candidates[ j ];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbestCandidate = candidate;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( bestCandidate ) {\n\n\t\t\tcandidateSrc = pf.makeUrl( bestCandidate.url );\n\n\t\t\timageData.curSrc = candidateSrc;\n\t\t\timageData.curCan = bestCandidate;\n\n\t\t\tif ( candidateSrc !== curSrc ) {\n\t\t\t\tpf.setSrc( img, bestCandidate );\n\t\t\t}\n\t\t\tpf.setSize( img );\n\t\t}\n\t};\n\n\tpf.setSrc = function( img, bestCandidate ) {\n\t\tvar origWidth;\n\t\timg.src = bestCandidate.url;\n\n\t\t// although this is a specific Safari issue, we don't want to take too much different code paths\n\t\tif ( bestCandidate.set.type === \"image/svg+xml\" ) {\n\t\t\torigWidth = img.style.width;\n\t\t\timg.style.width = (img.offsetWidth + 1) + \"px\";\n\n\t\t\t// next line only should trigger a repaint\n\t\t\t// if... is only done to trick dead code removal\n\t\t\tif ( img.offsetWidth + 1 ) {\n\t\t\t\timg.style.width = origWidth;\n\t\t\t}\n\t\t}\n\t};\n\n\tpf.getSet = function( img ) {\n\t\tvar i, set, supportsType;\n\t\tvar match = false;\n\t\tvar sets = img [ pf.ns ].sets;\n\n\t\tfor ( i = 0; i < sets.length && !match; i++ ) {\n\t\t\tset = sets[i];\n\n\t\t\tif ( !set.srcset || !pf.matchesMedia( set.media ) || !(supportsType = pf.supportsType( set.type )) ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif ( supportsType === \"pending\" ) {\n\t\t\t\tset = supportsType;\n\t\t\t}\n\n\t\t\tmatch = set;\n\t\t\tbreak;\n\t\t}\n\n\t\treturn match;\n\t};\n\n\tpf.parseSets = function( element, parent, options ) {\n\t\tvar srcsetAttribute, imageSet, isWDescripor, srcsetParsed;\n\n\t\tvar hasPicture = parent && parent.nodeName.toUpperCase() === \"PICTURE\";\n\t\tvar imageData = element[ pf.ns ];\n\n\t\tif ( imageData.src === undefined || options.src ) {\n\t\t\timageData.src = getImgAttr.call( element, \"src\" );\n\t\t\tif ( imageData.src ) {\n\t\t\t\tsetImgAttr.call( element, srcAttr, imageData.src );\n\t\t\t} else {\n\t\t\t\tremoveImgAttr.call( element, srcAttr );\n\t\t\t}\n\t\t}\n\n\t\tif ( imageData.srcset === undefined || options.srcset || !pf.supSrcset || element.srcset ) {\n\t\t\tsrcsetAttribute = getImgAttr.call( element, \"srcset\" );\n\t\t\timageData.srcset = srcsetAttribute;\n\t\t\tsrcsetParsed = true;\n\t\t}\n\n\t\timageData.sets = [];\n\n\t\tif ( hasPicture ) {\n\t\t\timageData.pic = true;\n\t\t\tgetAllSourceElements( parent, imageData.sets );\n\t\t}\n\n\t\tif ( imageData.srcset ) {\n\t\t\timageSet = {\n\t\t\t\tsrcset: imageData.srcset,\n\t\t\t\tsizes: getImgAttr.call( element, \"sizes\" )\n\t\t\t};\n\n\t\t\timageData.sets.push( imageSet );\n\n\t\t\tisWDescripor = (alwaysCheckWDescriptor || imageData.src) && regWDesc.test(imageData.srcset || \"\");\n\n\t\t\t// add normal src as candidate, if source has no w descriptor\n\t\t\tif ( !isWDescripor && imageData.src && !getCandidateForSrc(imageData.src, imageSet) && !imageSet.has1x ) {\n\t\t\t\timageSet.srcset += \", \" + imageData.src;\n\t\t\t\timageSet.cands.push({\n\t\t\t\t\turl: imageData.src,\n\t\t\t\t\td: 1,\n\t\t\t\t\tset: imageSet\n\t\t\t\t});\n\t\t\t}\n\n\t\t} else if ( imageData.src ) {\n\t\t\timageData.sets.push( {\n\t\t\t\tsrcset: imageData.src,\n\t\t\t\tsizes: null\n\t\t\t} );\n\t\t}\n\n\t\timageData.curCan = null;\n\t\timageData.curSrc = undefined;\n\n\t\t// if img has picture or the srcset was removed or has a srcset and does not support srcset at all\n\t\t// or has a w descriptor (and does not support sizes) set support to false to evaluate\n\t\timageData.supported = !( hasPicture || ( imageSet && !pf.supSrcset ) || (isWDescripor && !pf.supSizes) );\n\n\t\tif ( srcsetParsed && pf.supSrcset && !imageData.supported ) {\n\t\t\tif ( srcsetAttribute ) {\n\t\t\t\tsetImgAttr.call( element, srcsetAttr, srcsetAttribute );\n\t\t\t\telement.srcset = \"\";\n\t\t\t} else {\n\t\t\t\tremoveImgAttr.call( element, srcsetAttr );\n\t\t\t}\n\t\t}\n\n\t\tif (imageData.supported && !imageData.srcset && ((!imageData.src && element.src) || element.src !== pf.makeUrl(imageData.src))) {\n\t\t\tif (imageData.src === null) {\n\t\t\t\telement.removeAttribute(\"src\");\n\t\t\t} else {\n\t\t\t\telement.src = imageData.src;\n\t\t\t}\n\t\t}\n\n\t\timageData.parsed = true;\n\t};\n\n\tpf.fillImg = function(element, options) {\n\t\tvar imageData;\n\t\tvar extreme = options.reselect || options.reevaluate;\n\n\t\t// expando for caching data on the img\n\t\tif ( !element[ pf.ns ] ) {\n\t\t\telement[ pf.ns ] = {};\n\t\t}\n\n\t\timageData = element[ pf.ns ];\n\n\t\t// if the element has already been evaluated, skip it\n\t\t// unless `options.reevaluate` is set to true ( this, for example,\n\t\t// is set to true when running `picturefill` on `resize` ).\n\t\tif ( !extreme && imageData.evaled === evalId ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !imageData.parsed || options.reevaluate ) {\n\t\t\tpf.parseSets( element, element.parentNode, options );\n\t\t}\n\n\t\tif ( !imageData.supported ) {\n\t\t\tapplyBestCandidate( element );\n\t\t} else {\n\t\t\timageData.evaled = evalId;\n\t\t}\n\t};\n\n\tpf.setupRun = function() {\n\t\tif ( !alreadyRun || isVwDirty || (DPR !== window.devicePixelRatio) ) {\n\t\t\tupdateMetrics();\n\t\t}\n\t};\n\n\t// If picture is supported, well, that's awesome.\n\tif ( pf.supPicture ) {\n\t\tpicturefill = noop;\n\t\tpf.fillImg = noop;\n\t} else {\n\n\t\t // Set up picture polyfill by polling the document\n\t\t(function() {\n\t\t\tvar isDomReady;\n\t\t\tvar regReady = window.attachEvent ? /d$|^c/ : /d$|^c|^i/;\n\n\t\t\tvar run = function() {\n\t\t\t\tvar readyState = document.readyState || \"\";\n\n\t\t\t\ttimerId = setTimeout(run, readyState === \"loading\" ? 200 : 999);\n\t\t\t\tif ( document.body ) {\n\t\t\t\t\tpf.fillImgs();\n\t\t\t\t\tisDomReady = isDomReady || regReady.test(readyState);\n\t\t\t\t\tif ( isDomReady ) {\n\t\t\t\t\t\tclearTimeout( timerId );\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tvar timerId = setTimeout(run, document.body ? 9 : 99);\n\n\t\t\t// Also attach picturefill on resize and readystatechange\n\t\t\t// http://modernjavascript.blogspot.com/2013/08/building-better-debounce.html\n\t\t\tvar debounce = function(func, wait) {\n\t\t\t\tvar timeout, timestamp;\n\t\t\t\tvar later = function() {\n\t\t\t\t\tvar last = (new Date()) - timestamp;\n\n\t\t\t\t\tif (last < wait) {\n\t\t\t\t\t\ttimeout = setTimeout(later, wait - last);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttimeout = null;\n\t\t\t\t\t\tfunc();\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn function() {\n\t\t\t\t\ttimestamp = new Date();\n\n\t\t\t\t\tif (!timeout) {\n\t\t\t\t\t\ttimeout = setTimeout(later, wait);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\t\t\tvar lastClientWidth = docElem.clientHeight;\n\t\t\tvar onResize = function() {\n\t\t\t\tisVwDirty = Math.max(window.innerWidth || 0, docElem.clientWidth) !== units.width || docElem.clientHeight !== lastClientWidth;\n\t\t\t\tlastClientWidth = docElem.clientHeight;\n\t\t\t\tif ( isVwDirty ) {\n\t\t\t\t\tpf.fillImgs();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\ton( window, \"resize\", debounce(onResize, 99 ) );\n\t\t\ton( document, \"readystatechange\", run );\n\t\t})();\n\t}\n\n\tpf.picturefill = picturefill;\n\t//use this internally for easy monkey patching/performance testing\n\tpf.fillImgs = picturefill;\n\tpf.teardownRun = noop;\n\n\t/* expose methods for testing */\n\tpicturefill._ = pf;\n\n\twindow.picturefillCFG = {\n\t\tpf: pf,\n\t\tpush: function(args) {\n\t\t\tvar name = args.shift();\n\t\t\tif (typeof pf[name] === \"function\") {\n\t\t\t\tpf[name].apply(pf, args);\n\t\t\t} else {\n\t\t\t\tcfg[name] = args[0];\n\t\t\t\tif (alreadyRun) {\n\t\t\t\t\tpf.fillImgs( { reselect: true } );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\twhile (setOptions && setOptions.length) {\n\t\twindow.picturefillCFG.push(setOptions.shift());\n\t}\n\n\t/* expose picturefill */\n\twindow.picturefill = picturefill;\n\n\t/* expose picturefill */\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\t\t// CommonJS, just export\n\t\tmodule.exports = picturefill;\n\t} else if ( typeof define === \"function\" && define.amd ) {\n\t\t// AMD support\n\t\tdefine( \"picturefill\", function() { return picturefill; } );\n\t}\n\n\t// IE8 evals this sync, so it must be the last thing we do\n\tif ( !pf.supPicture ) {\n\t\ttypes[ \"image/webp\" ] = detectTypeSupport(\"image/webp\", \"data:image/webp;base64,UklGRkoAAABXRUJQVlA4WAoAAAAQAAAAAAAAAAAAQUxQSAwAAAABBxAR/Q9ERP8DAABWUDggGAAAADABAJ0BKgEAAQADADQlpAADcAD++/1QAA==\" );\n\t}\n\n} )( window, document );\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","require('./shim');\nrequire('./modules/core.dict');\nrequire('./modules/core.get-iterator-method');\nrequire('./modules/core.get-iterator');\nrequire('./modules/core.is-iterable');\nrequire('./modules/core.delay');\nrequire('./modules/core.function.part');\nrequire('./modules/core.object.is-object');\nrequire('./modules/core.object.classof');\nrequire('./modules/core.object.define');\nrequire('./modules/core.object.make');\nrequire('./modules/core.number.iterator');\nrequire('./modules/core.regexp.escape');\nrequire('./modules/core.string.escape-html');\nrequire('./modules/core.string.unescape-html');\nmodule.exports = require('./modules/_core');\n","require('./modules/es6.symbol');\nrequire('./modules/es6.object.create');\nrequire('./modules/es6.object.define-property');\nrequire('./modules/es6.object.define-properties');\nrequire('./modules/es6.object.get-own-property-descriptor');\nrequire('./modules/es6.object.get-prototype-of');\nrequire('./modules/es6.object.keys');\nrequire('./modules/es6.object.get-own-property-names');\nrequire('./modules/es6.object.freeze');\nrequire('./modules/es6.object.seal');\nrequire('./modules/es6.object.prevent-extensions');\nrequire('./modules/es6.object.is-frozen');\nrequire('./modules/es6.object.is-sealed');\nrequire('./modules/es6.object.is-extensible');\nrequire('./modules/es6.object.assign');\nrequire('./modules/es6.object.is');\nrequire('./modules/es6.object.set-prototype-of');\nrequire('./modules/es6.object.to-string');\nrequire('./modules/es6.function.bind');\nrequire('./modules/es6.function.name');\nrequire('./modules/es6.function.has-instance');\nrequire('./modules/es6.parse-int');\nrequire('./modules/es6.parse-float');\nrequire('./modules/es6.number.constructor');\nrequire('./modules/es6.number.to-fixed');\nrequire('./modules/es6.number.to-precision');\nrequire('./modules/es6.number.epsilon');\nrequire('./modules/es6.number.is-finite');\nrequire('./modules/es6.number.is-integer');\nrequire('./modules/es6.number.is-nan');\nrequire('./modules/es6.number.is-safe-integer');\nrequire('./modules/es6.number.max-safe-integer');\nrequire('./modules/es6.number.min-safe-integer');\nrequire('./modules/es6.number.parse-float');\nrequire('./modules/es6.number.parse-int');\nrequire('./modules/es6.math.acosh');\nrequire('./modules/es6.math.asinh');\nrequire('./modules/es6.math.atanh');\nrequire('./modules/es6.math.cbrt');\nrequire('./modules/es6.math.clz32');\nrequire('./modules/es6.math.cosh');\nrequire('./modules/es6.math.expm1');\nrequire('./modules/es6.math.fround');\nrequire('./modules/es6.math.hypot');\nrequire('./modules/es6.math.imul');\nrequire('./modules/es6.math.log10');\nrequire('./modules/es6.math.log1p');\nrequire('./modules/es6.math.log2');\nrequire('./modules/es6.math.sign');\nrequire('./modules/es6.math.sinh');\nrequire('./modules/es6.math.tanh');\nrequire('./modules/es6.math.trunc');\nrequire('./modules/es6.string.from-code-point');\nrequire('./modules/es6.string.raw');\nrequire('./modules/es6.string.trim');\nrequire('./modules/es6.string.iterator');\nrequire('./modules/es6.string.code-point-at');\nrequire('./modules/es6.string.ends-with');\nrequire('./modules/es6.string.includes');\nrequire('./modules/es6.string.repeat');\nrequire('./modules/es6.string.starts-with');\nrequire('./modules/es6.string.anchor');\nrequire('./modules/es6.string.big');\nrequire('./modules/es6.string.blink');\nrequire('./modules/es6.string.bold');\nrequire('./modules/es6.string.fixed');\nrequire('./modules/es6.string.fontcolor');\nrequire('./modules/es6.string.fontsize');\nrequire('./modules/es6.string.italics');\nrequire('./modules/es6.string.link');\nrequire('./modules/es6.string.small');\nrequire('./modules/es6.string.strike');\nrequire('./modules/es6.string.sub');\nrequire('./modules/es6.string.sup');\nrequire('./modules/es6.date.now');\nrequire('./modules/es6.date.to-json');\nrequire('./modules/es6.date.to-iso-string');\nrequire('./modules/es6.date.to-string');\nrequire('./modules/es6.date.to-primitive');\nrequire('./modules/es6.array.is-array');\nrequire('./modules/es6.array.from');\nrequire('./modules/es6.array.of');\nrequire('./modules/es6.array.join');\nrequire('./modules/es6.array.slice');\nrequire('./modules/es6.array.sort');\nrequire('./modules/es6.array.for-each');\nrequire('./modules/es6.array.map');\nrequire('./modules/es6.array.filter');\nrequire('./modules/es6.array.some');\nrequire('./modules/es6.array.every');\nrequire('./modules/es6.array.reduce');\nrequire('./modules/es6.array.reduce-right');\nrequire('./modules/es6.array.index-of');\nrequire('./modules/es6.array.last-index-of');\nrequire('./modules/es6.array.copy-within');\nrequire('./modules/es6.array.fill');\nrequire('./modules/es6.array.find');\nrequire('./modules/es6.array.find-index');\nrequire('./modules/es6.array.species');\nrequire('./modules/es6.array.iterator');\nrequire('./modules/es6.regexp.constructor');\nrequire('./modules/es6.regexp.exec');\nrequire('./modules/es6.regexp.to-string');\nrequire('./modules/es6.regexp.flags');\nrequire('./modules/es6.regexp.match');\nrequire('./modules/es6.regexp.replace');\nrequire('./modules/es6.regexp.search');\nrequire('./modules/es6.regexp.split');\nrequire('./modules/es6.promise');\nrequire('./modules/es6.map');\nrequire('./modules/es6.set');\nrequire('./modules/es6.weak-map');\nrequire('./modules/es6.weak-set');\nrequire('./modules/es6.typed.array-buffer');\nrequire('./modules/es6.typed.data-view');\nrequire('./modules/es6.typed.int8-array');\nrequire('./modules/es6.typed.uint8-array');\nrequire('./modules/es6.typed.uint8-clamped-array');\nrequire('./modules/es6.typed.int16-array');\nrequire('./modules/es6.typed.uint16-array');\nrequire('./modules/es6.typed.int32-array');\nrequire('./modules/es6.typed.uint32-array');\nrequire('./modules/es6.typed.float32-array');\nrequire('./modules/es6.typed.float64-array');\nrequire('./modules/es6.reflect.apply');\nrequire('./modules/es6.reflect.construct');\nrequire('./modules/es6.reflect.define-property');\nrequire('./modules/es6.reflect.delete-property');\nrequire('./modules/es6.reflect.enumerate');\nrequire('./modules/es6.reflect.get');\nrequire('./modules/es6.reflect.get-own-property-descriptor');\nrequire('./modules/es6.reflect.get-prototype-of');\nrequire('./modules/es6.reflect.has');\nrequire('./modules/es6.reflect.is-extensible');\nrequire('./modules/es6.reflect.own-keys');\nrequire('./modules/es6.reflect.prevent-extensions');\nrequire('./modules/es6.reflect.set');\nrequire('./modules/es6.reflect.set-prototype-of');\nrequire('./modules/es7.array.includes');\nrequire('./modules/es7.array.flat-map');\nrequire('./modules/es7.array.flatten');\nrequire('./modules/es7.string.at');\nrequire('./modules/es7.string.pad-start');\nrequire('./modules/es7.string.pad-end');\nrequire('./modules/es7.string.trim-left');\nrequire('./modules/es7.string.trim-right');\nrequire('./modules/es7.string.match-all');\nrequire('./modules/es7.symbol.async-iterator');\nrequire('./modules/es7.symbol.observable');\nrequire('./modules/es7.object.get-own-property-descriptors');\nrequire('./modules/es7.object.values');\nrequire('./modules/es7.object.entries');\nrequire('./modules/es7.object.define-getter');\nrequire('./modules/es7.object.define-setter');\nrequire('./modules/es7.object.lookup-getter');\nrequire('./modules/es7.object.lookup-setter');\nrequire('./modules/es7.map.to-json');\nrequire('./modules/es7.set.to-json');\nrequire('./modules/es7.map.of');\nrequire('./modules/es7.set.of');\nrequire('./modules/es7.weak-map.of');\nrequire('./modules/es7.weak-set.of');\nrequire('./modules/es7.map.from');\nrequire('./modules/es7.set.from');\nrequire('./modules/es7.weak-map.from');\nrequire('./modules/es7.weak-set.from');\nrequire('./modules/es7.global');\nrequire('./modules/es7.system.global');\nrequire('./modules/es7.error.is-error');\nrequire('./modules/es7.math.clamp');\nrequire('./modules/es7.math.deg-per-rad');\nrequire('./modules/es7.math.degrees');\nrequire('./modules/es7.math.fscale');\nrequire('./modules/es7.math.iaddh');\nrequire('./modules/es7.math.isubh');\nrequire('./modules/es7.math.imulh');\nrequire('./modules/es7.math.rad-per-deg');\nrequire('./modules/es7.math.radians');\nrequire('./modules/es7.math.scale');\nrequire('./modules/es7.math.umulh');\nrequire('./modules/es7.math.signbit');\nrequire('./modules/es7.promise.finally');\nrequire('./modules/es7.promise.try');\nrequire('./modules/es7.reflect.define-metadata');\nrequire('./modules/es7.reflect.delete-metadata');\nrequire('./modules/es7.reflect.get-metadata');\nrequire('./modules/es7.reflect.get-metadata-keys');\nrequire('./modules/es7.reflect.get-own-metadata');\nrequire('./modules/es7.reflect.get-own-metadata-keys');\nrequire('./modules/es7.reflect.has-metadata');\nrequire('./modules/es7.reflect.has-own-metadata');\nrequire('./modules/es7.reflect.metadata');\nrequire('./modules/es7.asap');\nrequire('./modules/es7.observable');\nrequire('./modules/web.timers');\nrequire('./modules/web.immediate');\nrequire('./modules/web.dom.iterable');\nmodule.exports = require('./modules/_core');\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\nvar gOPD = $GOPD.f;\nvar dP = $DP.f;\nvar gOPN = gOPNExt.f;\nvar $Symbol = global.Symbol;\nvar $JSON = global.JSON;\nvar _stringify = $JSON && $JSON.stringify;\nvar PROTOTYPE = 'prototype';\nvar HIDDEN = wks('_hidden');\nvar TO_PRIMITIVE = wks('toPrimitive');\nvar isEnum = {}.propertyIsEnumerable;\nvar SymbolRegistry = shared('symbol-registry');\nvar AllSymbols = shared('symbols');\nvar OPSymbols = shared('op-symbols');\nvar ObjectProto = Object[PROTOTYPE];\nvar USE_NATIVE = typeof $Symbol == 'function';\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (it, key, D) {\n var protoDesc = gOPD(ObjectProto, key);\n if (protoDesc) delete ObjectProto[key];\n dP(it, key, D);\n if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D) {\n if (it === ObjectProto) $defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if (has(AllSymbols, key)) {\n if (!D.enumerable) {\n if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;\n D = _create(D, { enumerable: createDesc(0, false) });\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P) {\n anObject(it);\n var keys = enumKeys(P = toIObject(P));\n var i = 0;\n var l = keys.length;\n var key;\n while (l > i) $defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P) {\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key) {\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {\n it = toIObject(it);\n key = toPrimitive(key, true);\n if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;\n var D = gOPD(it, key);\n if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it) {\n var names = gOPN(toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it) {\n var IS_OP = it === ObjectProto;\n var names = gOPN(IS_OP ? OPSymbols : toIObject(it));\n var result = [];\n var i = 0;\n var key;\n while (names.length > i) {\n if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif (!USE_NATIVE) {\n $Symbol = function Symbol() {\n if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function (value) {\n if (this === ObjectProto) $set.call(OPSymbols, value);\n if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it) {\n var args = [it];\n var i = 1;\n var replacer, $replacer;\n while (arguments.length > i) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nmodule.exports = function (it) {\n var result = getKeys(it);\n var getSymbols = gOPS.f;\n if (getSymbols) {\n var symbols = getSymbols(it);\n var isEnum = pIE.f;\n var i = 0;\n var key;\n while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","var $export = require('./_export');\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', { create: require('./_object-create') });\n","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n","var $export = require('./_export');\n// 19.1.2.3 / 15.2.3.7 Object.defineProperties(O, Properties)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperties: require('./_object-dps') });\n","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject');\nvar $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function () {\n return function getOwnPropertyDescriptor(it, key) {\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n","// 19.1.2.9 Object.getPrototypeOf(O)\nvar toObject = require('./_to-object');\nvar $getPrototypeOf = require('./_object-gpo');\n\nrequire('./_object-sap')('getPrototypeOf', function () {\n return function getPrototypeOf(it) {\n return $getPrototypeOf(toObject(it));\n };\n});\n","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n","// 19.1.2.7 Object.getOwnPropertyNames(O)\nrequire('./_object-sap')('getOwnPropertyNames', function () {\n return require('./_object-gopn-ext').f;\n});\n","// 19.1.2.5 Object.freeze(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('freeze', function ($freeze) {\n return function freeze(it) {\n return $freeze && isObject(it) ? $freeze(meta(it)) : it;\n };\n});\n","// 19.1.2.17 Object.seal(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('seal', function ($seal) {\n return function seal(it) {\n return $seal && isObject(it) ? $seal(meta(it)) : it;\n };\n});\n","// 19.1.2.15 Object.preventExtensions(O)\nvar isObject = require('./_is-object');\nvar meta = require('./_meta').onFreeze;\n\nrequire('./_object-sap')('preventExtensions', function ($preventExtensions) {\n return function preventExtensions(it) {\n return $preventExtensions && isObject(it) ? $preventExtensions(meta(it)) : it;\n };\n});\n","// 19.1.2.12 Object.isFrozen(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isFrozen', function ($isFrozen) {\n return function isFrozen(it) {\n return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;\n };\n});\n","// 19.1.2.13 Object.isSealed(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isSealed', function ($isSealed) {\n return function isSealed(it) {\n return isObject(it) ? $isSealed ? $isSealed(it) : false : true;\n };\n});\n","// 19.1.2.11 Object.isExtensible(O)\nvar isObject = require('./_is-object');\n\nrequire('./_object-sap')('isExtensible', function ($isExtensible) {\n return function isExtensible(it) {\n return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;\n };\n});\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","// 19.1.3.10 Object.is(value1, value2)\nvar $export = require('./_export');\n$export($export.S, 'Object', { is: require('./_same-value') });\n","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', { setPrototypeOf: require('./_set-proto').set });\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)\nvar $export = require('./_export');\n\n$export($export.P, 'Function', { bind: require('./_bind') });\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","'use strict';\nvar isObject = require('./_is-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar HAS_INSTANCE = require('./_wks')('hasInstance');\nvar FunctionProto = Function.prototype;\n// 19.2.3.6 Function.prototype[@@hasInstance](V)\nif (!(HAS_INSTANCE in FunctionProto)) require('./_object-dp').f(FunctionProto, HAS_INSTANCE, { value: function (O) {\n if (typeof this != 'function' || !isObject(O)) return false;\n if (!isObject(this.prototype)) return O instanceof this;\n // for environment w/o native `@@hasInstance` logic enough `instanceof`, but add this:\n while (O = getPrototypeOf(O)) if (this.prototype === O) return true;\n return false;\n} });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 18.2.5 parseInt(string, radix)\n$export($export.G + $export.F * (parseInt != $parseInt), { parseInt: $parseInt });\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 18.2.4 parseFloat(string)\n$export($export.G + $export.F * (parseFloat != $parseFloat), { parseFloat: $parseFloat });\n","'use strict';\nvar global = require('./_global');\nvar has = require('./_has');\nvar cof = require('./_cof');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar toPrimitive = require('./_to-primitive');\nvar fails = require('./_fails');\nvar gOPN = require('./_object-gopn').f;\nvar gOPD = require('./_object-gopd').f;\nvar dP = require('./_object-dp').f;\nvar $trim = require('./_string-trim').trim;\nvar NUMBER = 'Number';\nvar $Number = global[NUMBER];\nvar Base = $Number;\nvar proto = $Number.prototype;\n// Opera ~12 has broken Object#toString\nvar BROKEN_COF = cof(require('./_object-create')(proto)) == NUMBER;\nvar TRIM = 'trim' in String.prototype;\n\n// 7.1.3 ToNumber(argument)\nvar toNumber = function (argument) {\n var it = toPrimitive(argument, false);\n if (typeof it == 'string' && it.length > 2) {\n it = TRIM ? it.trim() : $trim(it, 3);\n var first = it.charCodeAt(0);\n var third, radix, maxCode;\n if (first === 43 || first === 45) {\n third = it.charCodeAt(2);\n if (third === 88 || third === 120) return NaN; // Number('+0x1') should be NaN, old V8 fix\n } else if (first === 48) {\n switch (it.charCodeAt(1)) {\n case 66: case 98: radix = 2; maxCode = 49; break; // fast equal /^0b[01]+$/i\n case 79: case 111: radix = 8; maxCode = 55; break; // fast equal /^0o[0-7]+$/i\n default: return +it;\n }\n for (var digits = it.slice(2), i = 0, l = digits.length, code; i < l; i++) {\n code = digits.charCodeAt(i);\n // parseInt parses a string to a first unavailable symbol\n // but ToNumber should return NaN if a string contains unavailable symbols\n if (code < 48 || code > maxCode) return NaN;\n } return parseInt(digits, radix);\n }\n } return +it;\n};\n\nif (!$Number(' 0o1') || !$Number('0b1') || $Number('+0x1')) {\n $Number = function Number(value) {\n var it = arguments.length < 1 ? 0 : value;\n var that = this;\n return that instanceof $Number\n // check on 1..constructor(foo) case\n && (BROKEN_COF ? fails(function () { proto.valueOf.call(that); }) : cof(that) != NUMBER)\n ? inheritIfRequired(new Base(toNumber(it)), that, $Number) : toNumber(it);\n };\n for (var keys = require('./_descriptors') ? gOPN(Base) : (\n // ES3:\n 'MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,' +\n // ES6 (in case, if modules with ES6 Number statics required before):\n 'EPSILON,isFinite,isInteger,isNaN,isSafeInteger,MAX_SAFE_INTEGER,' +\n 'MIN_SAFE_INTEGER,parseFloat,parseInt,isInteger'\n ).split(','), j = 0, key; keys.length > j; j++) {\n if (has(Base, key = keys[j]) && !has($Number, key)) {\n dP($Number, key, gOPD(Base, key));\n }\n }\n $Number.prototype = proto;\n proto.constructor = $Number;\n require('./_redefine')(global, NUMBER, $Number);\n}\n","'use strict';\nvar $export = require('./_export');\nvar toInteger = require('./_to-integer');\nvar aNumberValue = require('./_a-number-value');\nvar repeat = require('./_string-repeat');\nvar $toFixed = 1.0.toFixed;\nvar floor = Math.floor;\nvar data = [0, 0, 0, 0, 0, 0];\nvar ERROR = 'Number.toFixed: incorrect invocation!';\nvar ZERO = '0';\n\nvar multiply = function (n, c) {\n var i = -1;\n var c2 = c;\n while (++i < 6) {\n c2 += n * data[i];\n data[i] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\nvar divide = function (n) {\n var i = 6;\n var c = 0;\n while (--i >= 0) {\n c += data[i];\n data[i] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\nvar numToString = function () {\n var i = 6;\n var s = '';\n while (--i >= 0) {\n if (s !== '' || i === 0 || data[i] !== 0) {\n var t = String(data[i]);\n s = s === '' ? t : s + repeat.call(ZERO, 7 - t.length) + t;\n }\n } return s;\n};\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\n$export($export.P + $export.F * (!!$toFixed && (\n 0.00008.toFixed(3) !== '0.000' ||\n 0.9.toFixed(0) !== '1' ||\n 1.255.toFixed(2) !== '1.25' ||\n 1000000000000000128.0.toFixed(0) !== '1000000000000000128'\n) || !require('./_fails')(function () {\n // V8 ~ Android 4.3-\n $toFixed.call({});\n})), 'Number', {\n toFixed: function toFixed(fractionDigits) {\n var x = aNumberValue(this, ERROR);\n var f = toInteger(fractionDigits);\n var s = '';\n var m = ZERO;\n var e, z, j, k;\n if (f < 0 || f > 20) throw RangeError(ERROR);\n // eslint-disable-next-line no-self-compare\n if (x != x) return 'NaN';\n if (x <= -1e21 || x >= 1e21) return String(x);\n if (x < 0) {\n s = '-';\n x = -x;\n }\n if (x > 1e-21) {\n e = log(x * pow(2, 69, 1)) - 69;\n z = e < 0 ? x * pow(2, -e, 1) : x / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(0, z);\n j = f;\n while (j >= 7) {\n multiply(1e7, 0);\n j -= 7;\n }\n multiply(pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(1 << 23);\n j -= 23;\n }\n divide(1 << j);\n multiply(1, 1);\n divide(2);\n m = numToString();\n } else {\n multiply(0, z);\n multiply(1 << -e, 0);\n m = numToString() + repeat.call(ZERO, f);\n }\n }\n if (f > 0) {\n k = m.length;\n m = s + (k <= f ? '0.' + repeat.call(ZERO, f - k) + m : m.slice(0, k - f) + '.' + m.slice(k - f));\n } else {\n m = s + m;\n } return m;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $fails = require('./_fails');\nvar aNumberValue = require('./_a-number-value');\nvar $toPrecision = 1.0.toPrecision;\n\n$export($export.P + $export.F * ($fails(function () {\n // IE7-\n return $toPrecision.call(1, undefined) !== '1';\n}) || !$fails(function () {\n // V8 ~ Android 4.3-\n $toPrecision.call({});\n})), 'Number', {\n toPrecision: function toPrecision(precision) {\n var that = aNumberValue(this, 'Number#toPrecision: incorrect invocation!');\n return precision === undefined ? $toPrecision.call(that) : $toPrecision.call(that, precision);\n }\n});\n","// 20.1.2.1 Number.EPSILON\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { EPSILON: Math.pow(2, -52) });\n","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});\n","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","// 20.1.2.5 Number.isSafeInteger(number)\nvar $export = require('./_export');\nvar isInteger = require('./_is-integer');\nvar abs = Math.abs;\n\n$export($export.S, 'Number', {\n isSafeInteger: function isSafeInteger(number) {\n return isInteger(number) && abs(number) <= 0x1fffffffffffff;\n }\n});\n","// 20.1.2.6 Number.MAX_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });\n","// 20.1.2.10 Number.MIN_SAFE_INTEGER\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });\n","var $export = require('./_export');\nvar $parseFloat = require('./_parse-float');\n// 20.1.2.12 Number.parseFloat(string)\n$export($export.S + $export.F * (Number.parseFloat != $parseFloat), 'Number', { parseFloat: $parseFloat });\n","var $export = require('./_export');\nvar $parseInt = require('./_parse-int');\n// 20.1.2.13 Number.parseInt(string, radix)\n$export($export.S + $export.F * (Number.parseInt != $parseInt), 'Number', { parseInt: $parseInt });\n","// 20.2.2.3 Math.acosh(x)\nvar $export = require('./_export');\nvar log1p = require('./_math-log1p');\nvar sqrt = Math.sqrt;\nvar $acosh = Math.acosh;\n\n$export($export.S + $export.F * !($acosh\n // V8 bug: https://code.google.com/p/v8/issues/detail?id=3509\n && Math.floor($acosh(Number.MAX_VALUE)) == 710\n // Tor Browser bug: Math.acosh(Infinity) -> NaN\n && $acosh(Infinity) == Infinity\n), 'Math', {\n acosh: function acosh(x) {\n return (x = +x) < 1 ? NaN : x > 94906265.62425156\n ? Math.log(x) + Math.LN2\n : log1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));\n }\n});\n","// 20.2.2.5 Math.asinh(x)\nvar $export = require('./_export');\nvar $asinh = Math.asinh;\n\nfunction asinh(x) {\n return !isFinite(x = +x) || x == 0 ? x : x < 0 ? -asinh(-x) : Math.log(x + Math.sqrt(x * x + 1));\n}\n\n// Tor Browser bug: Math.asinh(0) -> -0\n$export($export.S + $export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });\n","// 20.2.2.7 Math.atanh(x)\nvar $export = require('./_export');\nvar $atanh = Math.atanh;\n\n// Tor Browser bug: Math.atanh(-0) -> 0\n$export($export.S + $export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {\n atanh: function atanh(x) {\n return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;\n }\n});\n","// 20.2.2.9 Math.cbrt(x)\nvar $export = require('./_export');\nvar sign = require('./_math-sign');\n\n$export($export.S, 'Math', {\n cbrt: function cbrt(x) {\n return sign(x = +x) * Math.pow(Math.abs(x), 1 / 3);\n }\n});\n","// 20.2.2.11 Math.clz32(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clz32: function clz32(x) {\n return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;\n }\n});\n","// 20.2.2.12 Math.cosh(x)\nvar $export = require('./_export');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n cosh: function cosh(x) {\n return (exp(x = +x) + exp(-x)) / 2;\n }\n});\n","// 20.2.2.14 Math.expm1(x)\nvar $export = require('./_export');\nvar $expm1 = require('./_math-expm1');\n\n$export($export.S + $export.F * ($expm1 != Math.expm1), 'Math', { expm1: $expm1 });\n","// 20.2.2.16 Math.fround(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { fround: require('./_math-fround') });\n","// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])\nvar $export = require('./_export');\nvar abs = Math.abs;\n\n$export($export.S, 'Math', {\n hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars\n var sum = 0;\n var i = 0;\n var aLen = arguments.length;\n var larg = 0;\n var arg, div;\n while (i < aLen) {\n arg = abs(arguments[i++]);\n if (larg < arg) {\n div = larg / arg;\n sum = sum * div * div + 1;\n larg = arg;\n } else if (arg > 0) {\n div = arg / larg;\n sum += div * div;\n } else sum += arg;\n }\n return larg === Infinity ? Infinity : larg * Math.sqrt(sum);\n }\n});\n","// 20.2.2.18 Math.imul(x, y)\nvar $export = require('./_export');\nvar $imul = Math.imul;\n\n// some WebKit versions fails with big numbers, some has wrong arity\n$export($export.S + $export.F * require('./_fails')(function () {\n return $imul(0xffffffff, 5) != -5 || $imul.length != 2;\n}), 'Math', {\n imul: function imul(x, y) {\n var UINT16 = 0xffff;\n var xn = +x;\n var yn = +y;\n var xl = UINT16 & xn;\n var yl = UINT16 & yn;\n return 0 | xl * yl + ((UINT16 & xn >>> 16) * yl + xl * (UINT16 & yn >>> 16) << 16 >>> 0);\n }\n});\n","// 20.2.2.21 Math.log10(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log10: function log10(x) {\n return Math.log(x) * Math.LOG10E;\n }\n});\n","// 20.2.2.20 Math.log1p(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { log1p: require('./_math-log1p') });\n","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n","// 20.2.2.28 Math.sign(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { sign: require('./_math-sign') });\n","// 20.2.2.30 Math.sinh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n// V8 near Chromium 38 has a problem with very small numbers\n$export($export.S + $export.F * require('./_fails')(function () {\n return !Math.sinh(-2e-17) != -2e-17;\n}), 'Math', {\n sinh: function sinh(x) {\n return Math.abs(x = +x) < 1\n ? (expm1(x) - expm1(-x)) / 2\n : (exp(x - 1) - exp(-x - 1)) * (Math.E / 2);\n }\n});\n","// 20.2.2.33 Math.tanh(x)\nvar $export = require('./_export');\nvar expm1 = require('./_math-expm1');\nvar exp = Math.exp;\n\n$export($export.S, 'Math', {\n tanh: function tanh(x) {\n var a = expm1(x = +x);\n var b = expm1(-x);\n return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp(x) + exp(-x));\n }\n});\n","// 20.2.2.34 Math.trunc(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n trunc: function trunc(it) {\n return (it > 0 ? Math.floor : Math.ceil)(it);\n }\n});\n","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\n var res = [];\n var aLen = arguments.length;\n var i = 0;\n var code;\n while (aLen > i) {\n code = +arguments[i++];\n if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');\n res.push(code < 0x10000\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n","var $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\n\n$export($export.S, 'String', {\n // 21.1.2.4 String.raw(callSite, ...substitutions)\n raw: function raw(callSite) {\n var tpl = toIObject(callSite.raw);\n var len = toLength(tpl.length);\n var aLen = arguments.length;\n var res = [];\n var i = 0;\n while (len > i) {\n res.push(String(tpl[i++]));\n if (i < aLen) res.push(String(arguments[i]));\n } return res.join('');\n }\n});\n","'use strict';\n// 21.1.3.25 String.prototype.trim()\nrequire('./_string-trim')('trim', function ($trim) {\n return function trim() {\n return $trim(this, 3);\n };\n});\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $export = require('./_export');\n\n$export($export.P, 'String', {\n // 21.1.3.13 String.prototype.repeat(count)\n repeat: require('./_string-repeat')\n});\n","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function (createHTML) {\n return function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n };\n});\n","'use strict';\n// B.2.3.3 String.prototype.big()\nrequire('./_string-html')('big', function (createHTML) {\n return function big() {\n return createHTML(this, 'big', '', '');\n };\n});\n","'use strict';\n// B.2.3.4 String.prototype.blink()\nrequire('./_string-html')('blink', function (createHTML) {\n return function blink() {\n return createHTML(this, 'blink', '', '');\n };\n});\n","'use strict';\n// B.2.3.5 String.prototype.bold()\nrequire('./_string-html')('bold', function (createHTML) {\n return function bold() {\n return createHTML(this, 'b', '', '');\n };\n});\n","'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n","'use strict';\n// B.2.3.7 String.prototype.fontcolor(color)\nrequire('./_string-html')('fontcolor', function (createHTML) {\n return function fontcolor(color) {\n return createHTML(this, 'font', 'color', color);\n };\n});\n","'use strict';\n// B.2.3.8 String.prototype.fontsize(size)\nrequire('./_string-html')('fontsize', function (createHTML) {\n return function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n };\n});\n","'use strict';\n// B.2.3.9 String.prototype.italics()\nrequire('./_string-html')('italics', function (createHTML) {\n return function italics() {\n return createHTML(this, 'i', '', '');\n };\n});\n","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n","'use strict';\n// B.2.3.11 String.prototype.small()\nrequire('./_string-html')('small', function (createHTML) {\n return function small() {\n return createHTML(this, 'small', '', '');\n };\n});\n","'use strict';\n// B.2.3.12 String.prototype.strike()\nrequire('./_string-html')('strike', function (createHTML) {\n return function strike() {\n return createHTML(this, 'strike', '', '');\n };\n});\n","'use strict';\n// B.2.3.13 String.prototype.sub()\nrequire('./_string-html')('sub', function (createHTML) {\n return function sub() {\n return createHTML(this, 'sub', '', '');\n };\n});\n","'use strict';\n// B.2.3.14 String.prototype.sup()\nrequire('./_string-html')('sup', function (createHTML) {\n return function sup() {\n return createHTML(this, 'sup', '', '');\n };\n});\n","// 20.3.3.1 / 15.9.4.4 Date.now()\nvar $export = require('./_export');\n\n$export($export.S, 'Date', { now: function () { return new Date().getTime(); } });\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\n\n$export($export.P + $export.F * require('./_fails')(function () {\n return new Date(NaN).toJSON() !== null\n || Date.prototype.toJSON.call({ toISOString: function () { return 1; } }) !== 1;\n}), 'Date', {\n // eslint-disable-next-line no-unused-vars\n toJSON: function toJSON(key) {\n var O = toObject(this);\n var pv = toPrimitive(O);\n return typeof pv == 'number' && !isFinite(pv) ? null : O.toISOString();\n }\n});\n","// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar $export = require('./_export');\nvar toISOString = require('./_date-to-iso-string');\n\n// PhantomJS / old WebKit has a broken implementations\n$export($export.P + $export.F * (Date.prototype.toISOString !== toISOString), 'Date', {\n toISOString: toISOString\n});\n","'use strict';\n// 20.3.4.36 / 15.9.5.43 Date.prototype.toISOString()\nvar fails = require('./_fails');\nvar getTime = Date.prototype.getTime;\nvar $toISOString = Date.prototype.toISOString;\n\nvar lz = function (num) {\n return num > 9 ? num : '0' + num;\n};\n\n// PhantomJS / old WebKit has a broken implementations\nmodule.exports = (fails(function () {\n return $toISOString.call(new Date(-5e13 - 1)) != '0385-07-25T07:06:39.999Z';\n}) || !fails(function () {\n $toISOString.call(new Date(NaN));\n})) ? function toISOString() {\n if (!isFinite(getTime.call(this))) throw RangeError('Invalid time value');\n var d = this;\n var y = d.getUTCFullYear();\n var m = d.getUTCMilliseconds();\n var s = y < 0 ? '-' : y > 9999 ? '+' : '';\n return s + ('00000' + Math.abs(y)).slice(s ? -6 : -4) +\n '-' + lz(d.getUTCMonth() + 1) + '-' + lz(d.getUTCDate()) +\n 'T' + lz(d.getUTCHours()) + ':' + lz(d.getUTCMinutes()) +\n ':' + lz(d.getUTCSeconds()) + '.' + (m > 99 ? m : '0' + lz(m)) + 'Z';\n} : $toISOString;\n","var DateProto = Date.prototype;\nvar INVALID_DATE = 'Invalid Date';\nvar TO_STRING = 'toString';\nvar $toString = DateProto[TO_STRING];\nvar getTime = DateProto.getTime;\nif (new Date(NaN) + '' != INVALID_DATE) {\n require('./_redefine')(DateProto, TO_STRING, function toString() {\n var value = getTime.call(this);\n // eslint-disable-next-line no-self-compare\n return value === value ? $toString.call(this) : INVALID_DATE;\n });\n}\n","var TO_PRIMITIVE = require('./_wks')('toPrimitive');\nvar proto = Date.prototype;\n\nif (!(TO_PRIMITIVE in proto)) require('./_hide')(proto, TO_PRIMITIVE, require('./_date-to-primitive'));\n","'use strict';\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\nvar NUMBER = 'number';\n\nmodule.exports = function (hint) {\n if (hint !== 'string' && hint !== NUMBER && hint !== 'default') throw TypeError('Incorrect hint');\n return toPrimitive(anObject(this), hint != NUMBER);\n};\n","// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)\nvar $export = require('./_export');\n\n$export($export.S, 'Array', { isArray: require('./_is-array') });\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar createProperty = require('./_create-property');\n\n// WebKit Array.of isn't generic\n$export($export.S + $export.F * require('./_fails')(function () {\n function F() { /* empty */ }\n return !(Array.of.call(F) instanceof F);\n}), 'Array', {\n // 22.1.2.3 Array.of( ...items)\n of: function of(/* ...args */) {\n var index = 0;\n var aLen = arguments.length;\n var result = new (typeof this == 'function' ? this : Array)(aLen);\n while (aLen > index) createProperty(result, index, arguments[index++]);\n result.length = aLen;\n return result;\n }\n});\n","'use strict';\n// 22.1.3.13 Array.prototype.join(separator)\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar arrayJoin = [].join;\n\n// fallback for not array-like strings\n$export($export.P + $export.F * (require('./_iobject') != Object || !require('./_strict-method')(arrayJoin)), 'Array', {\n join: function join(separator) {\n return arrayJoin.call(toIObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar html = require('./_html');\nvar cof = require('./_cof');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar arraySlice = [].slice;\n\n// fallback for not array-like ES3 strings and DOM objects\n$export($export.P + $export.F * require('./_fails')(function () {\n if (html) arraySlice.call(html);\n}), 'Array', {\n slice: function slice(begin, end) {\n var len = toLength(this.length);\n var klass = cof(this);\n end = end === undefined ? len : end;\n if (klass == 'Array') return arraySlice.call(this, begin, end);\n var start = toAbsoluteIndex(begin, len);\n var upTo = toAbsoluteIndex(end, len);\n var size = toLength(upTo - start);\n var cloned = new Array(size);\n var i = 0;\n for (; i < size; i++) cloned[i] = klass == 'String'\n ? this.charAt(start + i)\n : this[start + i];\n return cloned;\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar toObject = require('./_to-object');\nvar fails = require('./_fails');\nvar $sort = [].sort;\nvar test = [1, 2, 3];\n\n$export($export.P + $export.F * (fails(function () {\n // IE8-\n test.sort(undefined);\n}) || !fails(function () {\n // V8 bug\n test.sort(null);\n // Old WebKit\n}) || !require('./_strict-method')($sort)), 'Array', {\n // 22.1.3.25 Array.prototype.sort(comparefn)\n sort: function sort(comparefn) {\n return comparefn === undefined\n ? $sort.call(toObject(this))\n : $sort.call(toObject(this), aFunction(comparefn));\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $forEach = require('./_array-methods')(0);\nvar STRICT = require('./_strict-method')([].forEach, true);\n\n$export($export.P + $export.F * !STRICT, 'Array', {\n // 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])\n forEach: function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments[1]);\n }\n});\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\n if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;\n 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 $export = require('./_export');\nvar $map = require('./_array-methods')(1);\n\n$export($export.P + $export.F * !require('./_strict-method')([].map, true), 'Array', {\n // 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $filter = require('./_array-methods')(2);\n\n$export($export.P + $export.F * !require('./_strict-method')([].filter, true), 'Array', {\n // 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $some = require('./_array-methods')(3);\n\n$export($export.P + $export.F * !require('./_strict-method')([].some, true), 'Array', {\n // 22.1.3.23 / 15.4.4.17 Array.prototype.some(callbackfn [, thisArg])\n some: function some(callbackfn /* , thisArg */) {\n return $some(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $every = require('./_array-methods')(4);\n\n$export($export.P + $export.F * !require('./_strict-method')([].every, true), 'Array', {\n // 22.1.3.5 / 15.4.4.16 Array.prototype.every(callbackfn [, thisArg])\n every: function every(callbackfn /* , thisArg */) {\n return $every(this, callbackfn, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduce, true), 'Array', {\n // 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], false);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $reduce = require('./_array-reduce');\n\n$export($export.P + $export.F * !require('./_strict-method')([].reduceRight, true), 'Array', {\n // 22.1.3.19 / 15.4.4.22 Array.prototype.reduceRight(callbackfn [, initialValue])\n reduceRight: function reduceRight(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments[1], true);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar $indexOf = require('./_array-includes')(false);\nvar $native = [].indexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])\n indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {\n return NEGATIVE_ZERO\n // convert -0 to +0\n ? $native.apply(this, arguments) || 0\n : $indexOf(this, searchElement, arguments[1]);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toIObject = require('./_to-iobject');\nvar toInteger = require('./_to-integer');\nvar toLength = require('./_to-length');\nvar $native = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$native && 1 / [1].lastIndexOf(1, -0) < 0;\n\n$export($export.P + $export.F * (NEGATIVE_ZERO || !require('./_strict-method')($native)), 'Array', {\n // 22.1.3.14 / 15.4.4.15 Array.prototype.lastIndexOf(searchElement [, fromIndex])\n lastIndexOf: function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return $native.apply(this, arguments) || 0;\n var O = toIObject(this);\n var length = toLength(O.length);\n var index = length - 1;\n if (arguments.length > 1) index = Math.min(index, toInteger(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O) if (O[index] === searchElement) return index || 0;\n return -1;\n }\n});\n","// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { copyWithin: require('./_array-copy-within') });\n\nrequire('./_add-to-unscopables')('copyWithin');\n","// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)\nvar $export = require('./_export');\n\n$export($export.P, 'Array', { fill: require('./_array-fill') });\n\nrequire('./_add-to-unscopables')('fill');\n","'use strict';\n// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(5);\nvar KEY = 'find';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n find: function find(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","require('./_set-species')('Array');\n","var global = require('./_global');\nvar inheritIfRequired = require('./_inherit-if-required');\nvar dP = require('./_object-dp').f;\nvar gOPN = require('./_object-gopn').f;\nvar isRegExp = require('./_is-regexp');\nvar $flags = require('./_flags');\nvar $RegExp = global.RegExp;\nvar Base = $RegExp;\nvar proto = $RegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n// \"new\" creates a new object, old webkit buggy here\nvar CORRECT_NEW = new $RegExp(re1) !== re1;\n\nif (require('./_descriptors') && (!CORRECT_NEW || require('./_fails')(function () {\n re2[require('./_wks')('match')] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return $RegExp(re1) != re1 || $RegExp(re2) == re2 || $RegExp(re1, 'i') != '/a/i';\n}))) {\n $RegExp = function RegExp(p, f) {\n var tiRE = this instanceof $RegExp;\n var piRE = isRegExp(p);\n var fiU = f === undefined;\n return !tiRE && piRE && p.constructor === $RegExp && fiU ? p\n : inheritIfRequired(CORRECT_NEW\n ? new Base(piRE && !fiU ? p.source : p, f)\n : Base((piRE = p instanceof $RegExp) ? p.source : p, piRE && fiU ? $flags.call(p) : f)\n , tiRE ? this : proto, $RegExp);\n };\n var proxy = function (key) {\n key in $RegExp || dP($RegExp, key, {\n configurable: true,\n get: function () { return Base[key]; },\n set: function (it) { Base[key] = it; }\n });\n };\n for (var keys = gOPN(Base), i = 0; keys.length > i;) proxy(keys[i++]);\n proto.constructor = $RegExp;\n $RegExp.prototype = proto;\n require('./_redefine')(global, 'RegExp', $RegExp);\n}\n\nrequire('./_set-species')('RegExp');\n","'use strict';\nrequire('./es6.regexp.flags');\nvar anObject = require('./_an-object');\nvar $flags = require('./_flags');\nvar DESCRIPTORS = require('./_descriptors');\nvar TO_STRING = 'toString';\nvar $toString = /./[TO_STRING];\n\nvar define = function (fn) {\n require('./_redefine')(RegExp.prototype, TO_STRING, fn, true);\n};\n\n// 21.2.5.14 RegExp.prototype.toString()\nif (require('./_fails')(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {\n define(function toString() {\n var R = anObject(this);\n return '/'.concat(R.source, '/',\n 'flags' in R ? R.flags : !DESCRIPTORS && R instanceof RegExp ? $flags.call(R) : undefined);\n });\n// FF44- RegExp#toString has a wrong name\n} else if ($toString.name != TO_STRING) {\n define(function toString() {\n return $toString.call(this);\n });\n}\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative($match, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n if (!rx.global) return regExpExec(rx, S);\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar advanceStringIndex = require('./_advance-string-index');\nvar regExpExec = require('./_regexp-exec-abstract');\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&`']|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&`']|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nrequire('./_fix-re-wks')('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = defined(this);\n var fn = searchValue == undefined ? undefined : searchValue[REPLACE];\n return fn !== undefined\n ? fn.call(searchValue, O, replaceValue)\n : $replace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n var res = maybeCallNative($replace, regexp, this, replaceValue);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n results.push(result);\n if (!global) break;\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(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.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(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 ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","'use strict';\n\nvar anObject = require('./_an-object');\nvar sameValue = require('./_same-value');\nvar regExpExec = require('./_regexp-exec-abstract');\n\n// @@search logic\nrequire('./_fix-re-wks')('search', 1, function (defined, SEARCH, $search, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[SEARCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative($search, regexp, this);\n if (res.done) return res.value;\n var rx = anObject(regexp);\n var S = String(this);\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","'use strict';\n\nvar isRegExp = require('./_is-regexp');\nvar anObject = require('./_an-object');\nvar speciesConstructor = require('./_species-constructor');\nvar advanceStringIndex = require('./_advance-string-index');\nvar toLength = require('./_to-length');\nvar callRegExpExec = require('./_regexp-exec-abstract');\nvar regexpExec = require('./_regexp-exec');\nvar $min = Math.min;\nvar $push = [].push;\nvar $SPLIT = 'split';\nvar LENGTH = 'length';\nvar LAST_INDEX = 'lastIndex';\n\n// eslint-disable-next-line no-empty\nvar SUPPORTS_Y = !!(function () { try { return new RegExp('x', 'y'); } catch (e) {} })();\n\n// @@split logic\nrequire('./_fix-re-wks')('split', 2, function (defined, SPLIT, $split, maybeCallNative) {\n var internalSplit;\n if (\n 'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||\n 'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||\n 'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||\n '.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||\n '.'[$SPLIT](/()()/)[LENGTH] > 1 ||\n ''[$SPLIT](/.?/)[LENGTH]\n ) {\n // based on es5-shim implementation, need to rework it\n internalSplit = function (separator, limit) {\n var string = String(this);\n if (separator === undefined && limit === 0) return [];\n // If `separator` is not a regex, use native split\n if (!isRegExp(separator)) return $split.call(string, separator, limit);\n var output = [];\n var flags = (separator.ignoreCase ? 'i' : '') +\n (separator.multiline ? 'm' : '') +\n (separator.unicode ? 'u' : '') +\n (separator.sticky ? 'y' : '');\n var lastLastIndex = 0;\n var splitLimit = limit === undefined ? 4294967295 : limit >>> 0;\n // Make `global` and avoid `lastIndex` issues by working with a copy\n var separatorCopy = new RegExp(separator.source, flags + 'g');\n var match, lastIndex, lastLength;\n while (match = regexpExec.call(separatorCopy, string)) {\n lastIndex = separatorCopy[LAST_INDEX];\n if (lastIndex > lastLastIndex) {\n output.push(string.slice(lastLastIndex, match.index));\n if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));\n lastLength = match[0][LENGTH];\n lastLastIndex = lastIndex;\n if (output[LENGTH] >= splitLimit) break;\n }\n if (separatorCopy[LAST_INDEX] === match.index) separatorCopy[LAST_INDEX]++; // Avoid an infinite loop\n }\n if (lastLastIndex === string[LENGTH]) {\n if (lastLength || !separatorCopy.test('')) output.push('');\n } else output.push(string.slice(lastLastIndex));\n return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;\n };\n // Chakra, V8\n } else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {\n internalSplit = function (separator, limit) {\n return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);\n };\n } else {\n internalSplit = $split;\n }\n\n return [\n // `String.prototype.split` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.split\n function split(separator, limit) {\n var O = defined(this);\n var splitter = separator == undefined ? undefined : separator[SPLIT];\n return splitter !== undefined\n ? splitter.call(separator, O, limit)\n : internalSplit.call(String(O), separator, limit);\n },\n // `RegExp.prototype[@@split]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split\n //\n // NOTE: This cannot be properly polyfilled in engines that don't support\n // the 'y' flag.\n function (regexp, limit) {\n var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n var C = speciesConstructor(rx, RegExp);\n\n var unicodeMatching = rx.unicode;\n var flags = (rx.ignoreCase ? 'i' : '') +\n (rx.multiline ? 'm' : '') +\n (rx.unicode ? 'u' : '') +\n (SUPPORTS_Y ? 'y' : 'g');\n\n // ^(? + rx + ) is needed, in combination with some S slicing, to\n // simulate the 'y' flag.\n var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);\n var lim = limit === undefined ? 0xffffffff : limit >>> 0;\n if (lim === 0) return [];\n if (S.length === 0) return callRegExpExec(splitter, S) === null ? [S] : [];\n var p = 0;\n var q = 0;\n var A = [];\n while (q < S.length) {\n splitter.lastIndex = SUPPORTS_Y ? q : 0;\n var z = callRegExpExec(splitter, SUPPORTS_Y ? S : S.slice(q));\n var e;\n if (\n z === null ||\n (e = $min(toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p\n ) {\n q = advanceStringIndex(S, q, unicodeMatching);\n } else {\n A.push(S.slice(p, q));\n if (A.length === lim) return A;\n for (var i = 1; i <= z.length - 1; i++) {\n A.push(z[i]);\n if (A.length === lim) return A;\n }\n q = p = e;\n }\n }\n A.push(S.slice(p));\n return A;\n }\n ];\n});\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\nvar empty = function () { /* empty */ };\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n var run = function (reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (promise) {\n task.call(global, function () {\n var handler;\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\nvar $resolve = function (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = { _w: promise, _d: false }; // wrap\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n this._c.push(reaction);\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});\n","'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n","'use strict';\nvar $export = require('./_export');\nvar $typed = require('./_typed');\nvar buffer = require('./_typed-buffer');\nvar anObject = require('./_an-object');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar toLength = require('./_to-length');\nvar isObject = require('./_is-object');\nvar ArrayBuffer = require('./_global').ArrayBuffer;\nvar speciesConstructor = require('./_species-constructor');\nvar $ArrayBuffer = buffer.ArrayBuffer;\nvar $DataView = buffer.DataView;\nvar $isView = $typed.ABV && ArrayBuffer.isView;\nvar $slice = $ArrayBuffer.prototype.slice;\nvar VIEW = $typed.VIEW;\nvar ARRAY_BUFFER = 'ArrayBuffer';\n\n$export($export.G + $export.W + $export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });\n\n$export($export.S + $export.F * !$typed.CONSTR, ARRAY_BUFFER, {\n // 24.1.3.1 ArrayBuffer.isView(arg)\n isView: function isView(it) {\n return $isView && $isView(it) || isObject(it) && VIEW in it;\n }\n});\n\n$export($export.P + $export.U + $export.F * require('./_fails')(function () {\n return !new $ArrayBuffer(2).slice(1, undefined).byteLength;\n}), ARRAY_BUFFER, {\n // 24.1.4.3 ArrayBuffer.prototype.slice(start, end)\n slice: function slice(start, end) {\n if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix\n var len = anObject(this).byteLength;\n var first = toAbsoluteIndex(start, len);\n var fin = toAbsoluteIndex(end === undefined ? len : end, len);\n var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(fin - first));\n var viewS = new $DataView(this);\n var viewT = new $DataView(result);\n var index = 0;\n while (first < fin) {\n viewT.setUint8(index++, viewS.getUint8(first++));\n } return result;\n }\n});\n\nrequire('./_set-species')(ARRAY_BUFFER);\n","var $export = require('./_export');\n$export($export.G + $export.W + $export.F * !require('./_typed').ABV, {\n DataView: require('./_typed-buffer').DataView\n});\n","require('./_typed-array')('Int8', 1, function (init) {\n return function Int8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint8', 1, function (init) {\n return function Uint8ClampedArray(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n}, true);\n","require('./_typed-array')('Int16', 2, function (init) {\n return function Int16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint16', 2, function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Int32', 4, function (init) {\n return function Int32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Uint32', 4, function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Float32', 4, function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","require('./_typed-array')('Float64', 8, function (init) {\n return function Float64Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar rApply = (require('./_global').Reflect || {}).apply;\nvar fApply = Function.apply;\n// MS Edge argumentsList argument is optional\n$export($export.S + $export.F * !require('./_fails')(function () {\n rApply(function () { /* empty */ });\n}), 'Reflect', {\n apply: function apply(target, thisArgument, argumentsList) {\n var T = aFunction(target);\n var L = anObject(argumentsList);\n return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);\n }\n});\n","// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])\nvar $export = require('./_export');\nvar create = require('./_object-create');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar bind = require('./_bind');\nvar rConstruct = (require('./_global').Reflect || {}).construct;\n\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\nvar ARGS_BUG = !fails(function () {\n rConstruct(function () { /* empty */ });\n});\n\n$export($export.S + $export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {\n construct: function construct(Target, args /* , newTarget */) {\n aFunction(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n $args.push.apply($args, args);\n return new (bind.apply(Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : Object.prototype);\n var result = Function.apply.call(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","// 26.1.3 Reflect.defineProperty(target, propertyKey, attributes)\nvar dP = require('./_object-dp');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar toPrimitive = require('./_to-primitive');\n\n// MS Edge has broken Reflect.defineProperty - throwing instead of returning false\n$export($export.S + $export.F * require('./_fails')(function () {\n // eslint-disable-next-line no-undef\n Reflect.defineProperty(dP.f({}, 1, { value: 1 }), 1, { value: 2 });\n}), 'Reflect', {\n defineProperty: function defineProperty(target, propertyKey, attributes) {\n anObject(target);\n propertyKey = toPrimitive(propertyKey, true);\n anObject(attributes);\n try {\n dP.f(target, propertyKey, attributes);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.4 Reflect.deleteProperty(target, propertyKey)\nvar $export = require('./_export');\nvar gOPD = require('./_object-gopd').f;\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n deleteProperty: function deleteProperty(target, propertyKey) {\n var desc = gOPD(anObject(target), propertyKey);\n return desc && !desc.configurable ? false : delete target[propertyKey];\n }\n});\n","'use strict';\n// 26.1.5 Reflect.enumerate(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar Enumerate = function (iterated) {\n this._t = anObject(iterated); // target\n this._i = 0; // next index\n var keys = this._k = []; // keys\n var key;\n for (key in iterated) keys.push(key);\n};\nrequire('./_iter-create')(Enumerate, 'Object', function () {\n var that = this;\n var keys = that._k;\n var key;\n do {\n if (that._i >= keys.length) return { value: undefined, done: true };\n } while (!((key = keys[that._i++]) in that._t));\n return { value: key, done: false };\n});\n\n$export($export.S, 'Reflect', {\n enumerate: function enumerate(target) {\n return new Enumerate(target);\n }\n});\n","// 26.1.6 Reflect.get(target, propertyKey [, receiver])\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\n\nfunction get(target, propertyKey /* , receiver */) {\n var receiver = arguments.length < 3 ? target : arguments[2];\n var desc, proto;\n if (anObject(target) === receiver) return target[propertyKey];\n if (desc = gOPD.f(target, propertyKey)) return has(desc, 'value')\n ? desc.value\n : desc.get !== undefined\n ? desc.get.call(receiver)\n : undefined;\n if (isObject(proto = getPrototypeOf(target))) return get(proto, propertyKey, receiver);\n}\n\n$export($export.S, 'Reflect', { get: get });\n","// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)\nvar gOPD = require('./_object-gopd');\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {\n return gOPD.f(anObject(target), propertyKey);\n }\n});\n","// 26.1.8 Reflect.getPrototypeOf(target)\nvar $export = require('./_export');\nvar getProto = require('./_object-gpo');\nvar anObject = require('./_an-object');\n\n$export($export.S, 'Reflect', {\n getPrototypeOf: function getPrototypeOf(target) {\n return getProto(anObject(target));\n }\n});\n","// 26.1.9 Reflect.has(target, propertyKey)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', {\n has: function has(target, propertyKey) {\n return propertyKey in target;\n }\n});\n","// 26.1.10 Reflect.isExtensible(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $isExtensible = Object.isExtensible;\n\n$export($export.S, 'Reflect', {\n isExtensible: function isExtensible(target) {\n anObject(target);\n return $isExtensible ? $isExtensible(target) : true;\n }\n});\n","// 26.1.11 Reflect.ownKeys(target)\nvar $export = require('./_export');\n\n$export($export.S, 'Reflect', { ownKeys: require('./_own-keys') });\n","// 26.1.12 Reflect.preventExtensions(target)\nvar $export = require('./_export');\nvar anObject = require('./_an-object');\nvar $preventExtensions = Object.preventExtensions;\n\n$export($export.S, 'Reflect', {\n preventExtensions: function preventExtensions(target) {\n anObject(target);\n try {\n if ($preventExtensions) $preventExtensions(target);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","// 26.1.13 Reflect.set(target, propertyKey, V [, receiver])\nvar dP = require('./_object-dp');\nvar gOPD = require('./_object-gopd');\nvar getPrototypeOf = require('./_object-gpo');\nvar has = require('./_has');\nvar $export = require('./_export');\nvar createDesc = require('./_property-desc');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\n\nfunction set(target, propertyKey, V /* , receiver */) {\n var receiver = arguments.length < 4 ? target : arguments[3];\n var ownDesc = gOPD.f(anObject(target), propertyKey);\n var existingDescriptor, proto;\n if (!ownDesc) {\n if (isObject(proto = getPrototypeOf(target))) {\n return set(proto, propertyKey, V, receiver);\n }\n ownDesc = createDesc(0);\n }\n if (has(ownDesc, 'value')) {\n if (ownDesc.writable === false || !isObject(receiver)) return false;\n if (existingDescriptor = gOPD.f(receiver, propertyKey)) {\n if (existingDescriptor.get || existingDescriptor.set || existingDescriptor.writable === false) return false;\n existingDescriptor.value = V;\n dP.f(receiver, propertyKey, existingDescriptor);\n } else dP.f(receiver, propertyKey, createDesc(0, V));\n return true;\n }\n return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);\n}\n\n$export($export.S, 'Reflect', { set: set });\n","// 26.1.14 Reflect.setPrototypeOf(target, proto)\nvar $export = require('./_export');\nvar setProto = require('./_set-proto');\n\nif (setProto) $export($export.S, 'Reflect', {\n setPrototypeOf: function setPrototypeOf(target, proto) {\n setProto.check(target, proto);\n try {\n setProto.set(target, proto);\n return true;\n } catch (e) {\n return false;\n }\n }\n});\n","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatMap\nvar $export = require('./_export');\nvar flattenIntoArray = require('./_flatten-into-array');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar aFunction = require('./_a-function');\nvar arraySpeciesCreate = require('./_array-species-create');\n\n$export($export.P, 'Array', {\n flatMap: function flatMap(callbackfn /* , thisArg */) {\n var O = toObject(this);\n var sourceLen, A;\n aFunction(callbackfn);\n sourceLen = toLength(O.length);\n A = arraySpeciesCreate(O, 0);\n flattenIntoArray(A, O, O, sourceLen, 0, 1, callbackfn, arguments[1]);\n return A;\n }\n});\n\nrequire('./_add-to-unscopables')('flatMap');\n","'use strict';\n// https://tc39.github.io/proposal-flatMap/#sec-Array.prototype.flatten\nvar $export = require('./_export');\nvar flattenIntoArray = require('./_flatten-into-array');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar toInteger = require('./_to-integer');\nvar arraySpeciesCreate = require('./_array-species-create');\n\n$export($export.P, 'Array', {\n flatten: function flatten(/* depthArg = 1 */) {\n var depthArg = arguments[0];\n var O = toObject(this);\n var sourceLen = toLength(O.length);\n var A = arraySpeciesCreate(O, 0);\n flattenIntoArray(A, O, O, sourceLen, 0, depthArg === undefined ? 1 : toInteger(depthArg));\n return A;\n }\n});\n\nrequire('./_add-to-unscopables')('flatten');\n","'use strict';\n// https://github.com/mathiasbynens/String.prototype.at\nvar $export = require('./_export');\nvar $at = require('./_string-at')(true);\n\n$export($export.P, 'String', {\n at: function at(pos) {\n return $at(this, pos);\n }\n});\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\n$export($export.P + $export.F * /Version\\/10\\.\\d+(\\.\\d+)? Safari\\//.test(userAgent), 'String', {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\n$export($export.P + $export.F * /Version\\/10\\.\\d+(\\.\\d+)? Safari\\//.test(userAgent), 'String', {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});\n","'use strict';\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\nrequire('./_string-trim')('trimLeft', function ($trim) {\n return function trimLeft() {\n return $trim(this, 1);\n };\n}, 'trimStart');\n","'use strict';\n// https://github.com/sebmarkbage/ecmascript-string-left-right-trim\nrequire('./_string-trim')('trimRight', function ($trim) {\n return function trimRight() {\n return $trim(this, 2);\n };\n}, 'trimEnd');\n","'use strict';\n// https://tc39.github.io/String.prototype.matchAll/\nvar $export = require('./_export');\nvar defined = require('./_defined');\nvar toLength = require('./_to-length');\nvar isRegExp = require('./_is-regexp');\nvar getFlags = require('./_flags');\nvar RegExpProto = RegExp.prototype;\n\nvar $RegExpStringIterator = function (regexp, string) {\n this._r = regexp;\n this._s = string;\n};\n\nrequire('./_iter-create')($RegExpStringIterator, 'RegExp String', function next() {\n var match = this._r.exec(this._s);\n return { value: match, done: match === null };\n});\n\n$export($export.P, 'String', {\n matchAll: function matchAll(regexp) {\n defined(this);\n if (!isRegExp(regexp)) throw TypeError(regexp + ' is not a regexp!');\n var S = String(this);\n var flags = 'flags' in RegExpProto ? String(regexp.flags) : getFlags.call(regexp);\n var rx = new RegExp(regexp.source, ~flags.indexOf('g') ? flags : 'g' + flags);\n rx.lastIndex = toLength(regexp.lastIndex);\n return new $RegExpStringIterator(rx, S);\n }\n});\n","require('./_wks-define')('asyncIterator');\n","require('./_wks-define')('observable');\n","// https://github.com/tc39/proposal-object-getownpropertydescriptors\nvar $export = require('./_export');\nvar ownKeys = require('./_own-keys');\nvar toIObject = require('./_to-iobject');\nvar gOPD = require('./_object-gopd');\nvar createProperty = require('./_create-property');\n\n$export($export.S, 'Object', {\n getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {\n var O = toIObject(object);\n var getDesc = gOPD.f;\n var keys = ownKeys(O);\n var result = {};\n var i = 0;\n var key, desc;\n while (keys.length > i) {\n desc = getDesc(O, key = keys[i++]);\n if (desc !== undefined) createProperty(result, key, desc);\n }\n return result;\n }\n});\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it) {\n return $entries(it);\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar aFunction = require('./_a-function');\nvar $defineProperty = require('./_object-dp');\n\n// B.2.2.2 Object.prototype.__defineGetter__(P, getter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineGetter__: function __defineGetter__(P, getter) {\n $defineProperty.f(toObject(this), P, { get: aFunction(getter), enumerable: true, configurable: true });\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar aFunction = require('./_a-function');\nvar $defineProperty = require('./_object-dp');\n\n// B.2.2.3 Object.prototype.__defineSetter__(P, setter)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __defineSetter__: function __defineSetter__(P, setter) {\n $defineProperty.f(toObject(this), P, { set: aFunction(setter), enumerable: true, configurable: true });\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\nvar getPrototypeOf = require('./_object-gpo');\nvar getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.4 Object.prototype.__lookupGetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupGetter__: function __lookupGetter__(P) {\n var O = toObject(this);\n var K = toPrimitive(P, true);\n var D;\n do {\n if (D = getOwnPropertyDescriptor(O, K)) return D.get;\n } while (O = getPrototypeOf(O));\n }\n});\n","'use strict';\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar toPrimitive = require('./_to-primitive');\nvar getPrototypeOf = require('./_object-gpo');\nvar getOwnPropertyDescriptor = require('./_object-gopd').f;\n\n// B.2.2.5 Object.prototype.__lookupSetter__(P)\nrequire('./_descriptors') && $export($export.P + require('./_object-forced-pam'), 'Object', {\n __lookupSetter__: function __lookupSetter__(P) {\n var O = toObject(this);\n var K = toPrimitive(P, true);\n var D;\n do {\n if (D = getOwnPropertyDescriptor(O, K)) return D.set;\n } while (O = getPrototypeOf(O));\n }\n});\n","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Map', { toJSON: require('./_collection-to-json')('Map') });\n","// https://github.com/DavidBruant/Map-Set.prototype.toJSON\nvar $export = require('./_export');\n\n$export($export.P + $export.R, 'Set', { toJSON: require('./_collection-to-json')('Set') });\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-map.of\nrequire('./_set-collection-of')('Map');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-set.of\nrequire('./_set-collection-of')('Set');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of\nrequire('./_set-collection-of')('WeakMap');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of\nrequire('./_set-collection-of')('WeakSet');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-map.from\nrequire('./_set-collection-from')('Map');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-set.from\nrequire('./_set-collection-from')('Set');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from\nrequire('./_set-collection-from')('WeakMap');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from\nrequire('./_set-collection-from')('WeakSet');\n","// https://github.com/tc39/proposal-global\nvar $export = require('./_export');\n\n$export($export.G, { global: require('./_global') });\n","// https://github.com/tc39/proposal-global\nvar $export = require('./_export');\n\n$export($export.S, 'System', { global: require('./_global') });\n","// https://github.com/ljharb/proposal-is-error\nvar $export = require('./_export');\nvar cof = require('./_cof');\n\n$export($export.S, 'Error', {\n isError: function isError(it) {\n return cof(it) === 'Error';\n }\n});\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n clamp: function clamp(x, lower, upper) {\n return Math.min(upper, Math.max(lower, x));\n }\n});\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { DEG_PER_RAD: Math.PI / 180 });\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\nvar RAD_PER_DEG = 180 / Math.PI;\n\n$export($export.S, 'Math', {\n degrees: function degrees(radians) {\n return radians * RAD_PER_DEG;\n }\n});\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\nvar scale = require('./_math-scale');\nvar fround = require('./_math-fround');\n\n$export($export.S, 'Math', {\n fscale: function fscale(x, inLow, inHigh, outLow, outHigh) {\n return fround(scale(x, inLow, inHigh, outLow, outHigh));\n }\n});\n","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n iaddh: function iaddh(x0, x1, y0, y1) {\n var $x0 = x0 >>> 0;\n var $x1 = x1 >>> 0;\n var $y0 = y0 >>> 0;\n return $x1 + (y1 >>> 0) + (($x0 & $y0 | ($x0 | $y0) & ~($x0 + $y0 >>> 0)) >>> 31) | 0;\n }\n});\n","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n isubh: function isubh(x0, x1, y0, y1) {\n var $x0 = x0 >>> 0;\n var $x1 = x1 >>> 0;\n var $y0 = y0 >>> 0;\n return $x1 - (y1 >>> 0) - ((~$x0 & $y0 | ~($x0 ^ $y0) & $x0 - $y0 >>> 0) >>> 31) | 0;\n }\n});\n","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n imulh: function imulh(u, v) {\n var UINT16 = 0xffff;\n var $u = +u;\n var $v = +v;\n var u0 = $u & UINT16;\n var v0 = $v & UINT16;\n var u1 = $u >> 16;\n var v1 = $v >> 16;\n var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n return u1 * v1 + (t >> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >> 16);\n }\n});\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { RAD_PER_DEG: 180 / Math.PI });\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\nvar DEG_PER_RAD = Math.PI / 180;\n\n$export($export.S, 'Math', {\n radians: function radians(degrees) {\n return degrees * DEG_PER_RAD;\n }\n});\n","// https://rwaldron.github.io/proposal-math-extensions/\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { scale: require('./_math-scale') });\n","// https://gist.github.com/BrendanEich/4294d5c212a6d2254703\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n umulh: function umulh(u, v) {\n var UINT16 = 0xffff;\n var $u = +u;\n var $v = +v;\n var u0 = $u & UINT16;\n var v0 = $v & UINT16;\n var u1 = $u >>> 16;\n var v1 = $v >>> 16;\n var t = (u1 * v0 >>> 0) + (u0 * v0 >>> 16);\n return u1 * v1 + (t >>> 16) + ((u0 * v1 >>> 0) + (t & UINT16) >>> 16);\n }\n});\n","// http://jfbastien.github.io/papers/Math.signbit.html\nvar $export = require('./_export');\n\n$export($export.S, 'Math', { signbit: function signbit(x) {\n // eslint-disable-next-line no-self-compare\n return (x = +x) != x ? x : x == 0 ? 1 / x == Infinity : x > 0;\n} });\n","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","'use strict';\n// https://github.com/tc39/proposal-promise-try\nvar $export = require('./_export');\nvar newPromiseCapability = require('./_new-promise-capability');\nvar perform = require('./_perform');\n\n$export($export.S, 'Promise', { 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar ordinaryDefineOwnMetadata = metadata.set;\n\nmetadata.exp({ defineMetadata: function defineMetadata(metadataKey, metadataValue, target, targetKey) {\n ordinaryDefineOwnMetadata(metadataKey, metadataValue, anObject(target), toMetaKey(targetKey));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar toMetaKey = metadata.key;\nvar getOrCreateMetadataMap = metadata.map;\nvar store = metadata.store;\n\nmetadata.exp({ deleteMetadata: function deleteMetadata(metadataKey, target /* , targetKey */) {\n var targetKey = arguments.length < 3 ? undefined : toMetaKey(arguments[2]);\n var metadataMap = getOrCreateMetadataMap(anObject(target), targetKey, false);\n if (metadataMap === undefined || !metadataMap['delete'](metadataKey)) return false;\n if (metadataMap.size) return true;\n var targetMetadata = store.get(target);\n targetMetadata['delete'](targetKey);\n return !!targetMetadata.size || store['delete'](target);\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nvar ordinaryGetMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return ordinaryGetOwnMetadata(MetadataKey, O, P);\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryGetMetadata(MetadataKey, parent, P) : undefined;\n};\n\nmetadata.exp({ getMetadata: function getMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var Set = require('./es6.set');\nvar from = require('./_array-from-iterable');\nvar metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nvar ordinaryMetadataKeys = function (O, P) {\n var oKeys = ordinaryOwnMetadataKeys(O, P);\n var parent = getPrototypeOf(O);\n if (parent === null) return oKeys;\n var pKeys = ordinaryMetadataKeys(parent, P);\n return pKeys.length ? oKeys.length ? from(new Set(oKeys.concat(pKeys))) : pKeys : oKeys;\n};\n\nmetadata.exp({ getMetadataKeys: function getMetadataKeys(target /* , targetKey */) {\n return ordinaryMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryGetOwnMetadata = metadata.get;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadata: function getOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryGetOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryOwnMetadataKeys = metadata.keys;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ getOwnMetadataKeys: function getOwnMetadataKeys(target /* , targetKey */) {\n return ordinaryOwnMetadataKeys(anObject(target), arguments.length < 2 ? undefined : toMetaKey(arguments[1]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar getPrototypeOf = require('./_object-gpo');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nvar ordinaryHasMetadata = function (MetadataKey, O, P) {\n var hasOwn = ordinaryHasOwnMetadata(MetadataKey, O, P);\n if (hasOwn) return true;\n var parent = getPrototypeOf(O);\n return parent !== null ? ordinaryHasMetadata(MetadataKey, parent, P) : false;\n};\n\nmetadata.exp({ hasMetadata: function hasMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasMetadata(metadataKey, anObject(target), arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar ordinaryHasOwnMetadata = metadata.has;\nvar toMetaKey = metadata.key;\n\nmetadata.exp({ hasOwnMetadata: function hasOwnMetadata(metadataKey, target /* , targetKey */) {\n return ordinaryHasOwnMetadata(metadataKey, anObject(target)\n , arguments.length < 3 ? undefined : toMetaKey(arguments[2]));\n} });\n","var $metadata = require('./_metadata');\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar toMetaKey = $metadata.key;\nvar ordinaryDefineOwnMetadata = $metadata.set;\n\n$metadata.exp({ metadata: function metadata(metadataKey, metadataValue) {\n return function decorator(target, targetKey) {\n ordinaryDefineOwnMetadata(\n metadataKey, metadataValue,\n (targetKey !== undefined ? anObject : aFunction)(target),\n toMetaKey(targetKey)\n );\n };\n} });\n","// https://github.com/rwaldron/tc39-notes/blob/master/es6/2014-09/sept-25.md#510-globalasap-for-enqueuing-a-microtask\nvar $export = require('./_export');\nvar microtask = require('./_microtask')();\nvar process = require('./_global').process;\nvar isNode = require('./_cof')(process) == 'process';\n\n$export($export.G, {\n asap: function asap(fn) {\n var domain = isNode && process.domain;\n microtask(domain ? domain.bind(fn) : fn);\n }\n});\n","'use strict';\n// https://github.com/zenparsing/es-observable\nvar $export = require('./_export');\nvar global = require('./_global');\nvar core = require('./_core');\nvar microtask = require('./_microtask')();\nvar OBSERVABLE = require('./_wks')('observable');\nvar aFunction = require('./_a-function');\nvar anObject = require('./_an-object');\nvar anInstance = require('./_an-instance');\nvar redefineAll = require('./_redefine-all');\nvar hide = require('./_hide');\nvar forOf = require('./_for-of');\nvar RETURN = forOf.RETURN;\n\nvar getMethod = function (fn) {\n return fn == null ? undefined : aFunction(fn);\n};\n\nvar cleanupSubscription = function (subscription) {\n var cleanup = subscription._c;\n if (cleanup) {\n subscription._c = undefined;\n cleanup();\n }\n};\n\nvar subscriptionClosed = function (subscription) {\n return subscription._o === undefined;\n};\n\nvar closeSubscription = function (subscription) {\n if (!subscriptionClosed(subscription)) {\n subscription._o = undefined;\n cleanupSubscription(subscription);\n }\n};\n\nvar Subscription = function (observer, subscriber) {\n anObject(observer);\n this._c = undefined;\n this._o = observer;\n observer = new SubscriptionObserver(this);\n try {\n var cleanup = subscriber(observer);\n var subscription = cleanup;\n if (cleanup != null) {\n if (typeof cleanup.unsubscribe === 'function') cleanup = function () { subscription.unsubscribe(); };\n else aFunction(cleanup);\n this._c = cleanup;\n }\n } catch (e) {\n observer.error(e);\n return;\n } if (subscriptionClosed(this)) cleanupSubscription(this);\n};\n\nSubscription.prototype = redefineAll({}, {\n unsubscribe: function unsubscribe() { closeSubscription(this); }\n});\n\nvar SubscriptionObserver = function (subscription) {\n this._s = subscription;\n};\n\nSubscriptionObserver.prototype = redefineAll({}, {\n next: function next(value) {\n var subscription = this._s;\n if (!subscriptionClosed(subscription)) {\n var observer = subscription._o;\n try {\n var m = getMethod(observer.next);\n if (m) return m.call(observer, value);\n } catch (e) {\n try {\n closeSubscription(subscription);\n } finally {\n throw e;\n }\n }\n }\n },\n error: function error(value) {\n var subscription = this._s;\n if (subscriptionClosed(subscription)) throw value;\n var observer = subscription._o;\n subscription._o = undefined;\n try {\n var m = getMethod(observer.error);\n if (!m) throw value;\n value = m.call(observer, value);\n } catch (e) {\n try {\n cleanupSubscription(subscription);\n } finally {\n throw e;\n }\n } cleanupSubscription(subscription);\n return value;\n },\n complete: function complete(value) {\n var subscription = this._s;\n if (!subscriptionClosed(subscription)) {\n var observer = subscription._o;\n subscription._o = undefined;\n try {\n var m = getMethod(observer.complete);\n value = m ? m.call(observer, value) : undefined;\n } catch (e) {\n try {\n cleanupSubscription(subscription);\n } finally {\n throw e;\n }\n } cleanupSubscription(subscription);\n return value;\n }\n }\n});\n\nvar $Observable = function Observable(subscriber) {\n anInstance(this, $Observable, 'Observable', '_f')._f = aFunction(subscriber);\n};\n\nredefineAll($Observable.prototype, {\n subscribe: function subscribe(observer) {\n return new Subscription(observer, this._f);\n },\n forEach: function forEach(fn) {\n var that = this;\n return new (core.Promise || global.Promise)(function (resolve, reject) {\n aFunction(fn);\n var subscription = that.subscribe({\n next: function (value) {\n try {\n return fn(value);\n } catch (e) {\n reject(e);\n subscription.unsubscribe();\n }\n },\n error: reject,\n complete: resolve\n });\n });\n }\n});\n\nredefineAll($Observable, {\n from: function from(x) {\n var C = typeof this === 'function' ? this : $Observable;\n var method = getMethod(anObject(x)[OBSERVABLE]);\n if (method) {\n var observable = anObject(method.call(x));\n return observable.constructor === C ? observable : new C(function (observer) {\n return observable.subscribe(observer);\n });\n }\n return new C(function (observer) {\n var done = false;\n microtask(function () {\n if (!done) {\n try {\n if (forOf(x, false, function (it) {\n observer.next(it);\n if (done) return RETURN;\n }) === RETURN) return;\n } catch (e) {\n if (done) throw e;\n observer.error(e);\n return;\n } observer.complete();\n }\n });\n return function () { done = true; };\n });\n },\n of: function of() {\n for (var i = 0, l = arguments.length, items = new Array(l); i < l;) items[i] = arguments[i++];\n return new (typeof this === 'function' ? this : $Observable)(function (observer) {\n var done = false;\n microtask(function () {\n if (!done) {\n for (var j = 0; j < items.length; ++j) {\n observer.next(items[j]);\n if (done) return;\n } observer.complete();\n }\n });\n return function () { done = true; };\n });\n }\n});\n\nhide($Observable.prototype, OBSERVABLE, function () { return this; });\n\n$export($export.G, { Observable: $Observable });\n\nrequire('./_set-species')('Observable');\n","// ie9- setTimeout & setInterval additional parameters fix\nvar global = require('./_global');\nvar $export = require('./_export');\nvar userAgent = require('./_user-agent');\nvar slice = [].slice;\nvar MSIE = /MSIE .\\./.test(userAgent); // <- dirty ie9- check\nvar wrap = function (set) {\n return function (fn, time /* , ...args */) {\n var boundArgs = arguments.length > 2;\n var args = boundArgs ? slice.call(arguments, 2) : false;\n return set(boundArgs ? function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(this, args);\n } : fn, time);\n };\n};\n$export($export.G + $export.B + $export.F * MSIE, {\n setTimeout: wrap(global.setTimeout),\n setInterval: wrap(global.setInterval)\n});\n","var $export = require('./_export');\nvar $task = require('./_task');\n$export($export.G + $export.B, {\n setImmediate: $task.set,\n clearImmediate: $task.clear\n});\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\n CSSStyleDeclaration: false,\n CSSValueList: false,\n ClientRectList: false,\n DOMRectList: false,\n DOMStringList: false,\n DOMTokenList: true,\n DataTransferItemList: false,\n FileList: false,\n HTMLAllCollection: false,\n HTMLCollection: false,\n HTMLFormElement: false,\n HTMLSelectElement: false,\n MediaList: true, // TODO: Not spec compliant, should be false.\n MimeTypeArray: false,\n NamedNodeMap: false,\n NodeList: true,\n PaintRequestList: false,\n Plugin: false,\n PluginArray: false,\n SVGLengthList: false,\n SVGNumberList: false,\n SVGPathSegList: false,\n SVGPointList: false,\n SVGStringList: false,\n SVGTransformList: false,\n SourceBufferList: false,\n StyleSheetList: true, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\n\nfor (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {\n var NAME = collections[i];\n var explicit = DOMIterables[NAME];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n var key;\n if (proto) {\n if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);\n if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = ArrayValues;\n if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar createDesc = require('./_property-desc');\nvar assign = require('./_object-assign');\nvar create = require('./_object-create');\nvar getPrototypeOf = require('./_object-gpo');\nvar getKeys = require('./_object-keys');\nvar dP = require('./_object-dp');\nvar keyOf = require('./_keyof');\nvar aFunction = require('./_a-function');\nvar forOf = require('./_for-of');\nvar isIterable = require('./core.is-iterable');\nvar $iterCreate = require('./_iter-create');\nvar step = require('./_iter-step');\nvar isObject = require('./_is-object');\nvar toIObject = require('./_to-iobject');\nvar DESCRIPTORS = require('./_descriptors');\nvar has = require('./_has');\n\n// 0 -> Dict.forEach\n// 1 -> Dict.map\n// 2 -> Dict.filter\n// 3 -> Dict.some\n// 4 -> Dict.every\n// 5 -> Dict.find\n// 6 -> Dict.findKey\n// 7 -> Dict.mapPairs\nvar createDictMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_EVERY = TYPE == 4;\n return function (object, callbackfn, that /* = undefined */) {\n var f = ctx(callbackfn, that, 3);\n var O = toIObject(object);\n var result = IS_MAP || TYPE == 7 || TYPE == 2\n ? new (typeof this == 'function' ? this : Dict)() : undefined;\n var key, val, res;\n for (key in O) if (has(O, key)) {\n val = O[key];\n res = f(val, key, object);\n if (TYPE) {\n if (IS_MAP) result[key] = res; // map\n else if (res) switch (TYPE) {\n case 2: result[key] = val; break; // filter\n case 3: return true; // some\n case 5: return val; // find\n case 6: return key; // findKey\n case 7: result[res[0]] = res[1]; // mapPairs\n } else if (IS_EVERY) return false; // every\n }\n }\n return TYPE == 3 || IS_EVERY ? IS_EVERY : result;\n };\n};\nvar findKey = createDictMethod(6);\n\nvar createDictIter = function (kind) {\n return function (it) {\n return new DictIterator(it, kind);\n };\n};\nvar DictIterator = function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._a = getKeys(iterated); // keys\n this._i = 0; // next index\n this._k = kind; // kind\n};\n$iterCreate(DictIterator, 'Dict', function () {\n var that = this;\n var O = that._t;\n var keys = that._a;\n var kind = that._k;\n var key;\n do {\n if (that._i >= keys.length) {\n that._t = undefined;\n return step(1);\n }\n } while (!has(O, key = keys[that._i++]));\n if (kind == 'keys') return step(0, key);\n if (kind == 'values') return step(0, O[key]);\n return step(0, [key, O[key]]);\n});\n\nfunction Dict(iterable) {\n var dict = create(null);\n if (iterable != undefined) {\n if (isIterable(iterable)) {\n forOf(iterable, true, function (key, value) {\n dict[key] = value;\n });\n } else assign(dict, iterable);\n }\n return dict;\n}\nDict.prototype = null;\n\nfunction reduce(object, mapfn, init) {\n aFunction(mapfn);\n var O = toIObject(object);\n var keys = getKeys(O);\n var length = keys.length;\n var i = 0;\n var memo, key;\n if (arguments.length < 3) {\n if (!length) throw TypeError('Reduce of empty object with no initial value');\n memo = O[keys[i++]];\n } else memo = Object(init);\n while (length > i) if (has(O, key = keys[i++])) {\n memo = mapfn(memo, O[key], key, object);\n }\n return memo;\n}\n\nfunction includes(object, el) {\n // eslint-disable-next-line no-self-compare\n return (el == el ? keyOf(object, el) : findKey(object, function (it) {\n // eslint-disable-next-line no-self-compare\n return it != it;\n })) !== undefined;\n}\n\nfunction get(object, key) {\n if (has(object, key)) return object[key];\n}\nfunction set(object, key, value) {\n if (DESCRIPTORS && key in Object) dP.f(object, key, createDesc(0, value));\n else object[key] = value;\n return object;\n}\n\nfunction isDict(it) {\n return isObject(it) && getPrototypeOf(it) === Dict.prototype;\n}\n\n$export($export.G + $export.F, { Dict: Dict });\n\n$export($export.S, 'Dict', {\n keys: createDictIter('keys'),\n values: createDictIter('values'),\n entries: createDictIter('entries'),\n forEach: createDictMethod(0),\n map: createDictMethod(1),\n filter: createDictMethod(2),\n some: createDictMethod(3),\n every: createDictMethod(4),\n find: createDictMethod(5),\n findKey: findKey,\n mapPairs: createDictMethod(7),\n reduce: reduce,\n keyOf: keyOf,\n includes: includes,\n has: has,\n get: get,\n set: set,\n isDict: isDict\n});\n","var getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nmodule.exports = function (object, el) {\n var O = toIObject(object);\n var keys = getKeys(O);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) if (O[key = keys[index++]] === el) return key;\n};\n","var anObject = require('./_an-object');\nvar get = require('./core.get-iterator-method');\nmodule.exports = require('./_core').getIterator = function (it) {\n var iterFn = get(it);\n if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};\n","var global = require('./_global');\nvar core = require('./_core');\nvar $export = require('./_export');\nvar partial = require('./_partial');\n// https://esdiscuss.org/topic/promise-returning-delay-function\n$export($export.G + $export.F, {\n delay: function delay(time) {\n return new (core.Promise || global.Promise)(function (resolve) {\n setTimeout(partial.call(resolve, true), time);\n });\n }\n});\n","var path = require('./_path');\nvar $export = require('./_export');\n\n// Placeholder\nrequire('./_core')._ = path._ = path._ || {};\n\n$export($export.P + $export.F, 'Function', { part: require('./_partial') });\n","var $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { isObject: require('./_is-object') });\n","var $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { classof: require('./_classof') });\n","var $export = require('./_export');\nvar define = require('./_object-define');\n\n$export($export.S + $export.F, 'Object', { define: define });\n","var $export = require('./_export');\nvar define = require('./_object-define');\nvar create = require('./_object-create');\n\n$export($export.S + $export.F, 'Object', {\n make: function (proto, mixin) {\n return define(create(proto), mixin);\n }\n});\n","'use strict';\nrequire('./_iter-define')(Number, 'Number', function (iterated) {\n this._l = +iterated;\n this._i = 0;\n}, function () {\n var i = this._i++;\n var done = !(i < this._l);\n return { done: done, value: done ? undefined : i };\n});\n","// https://github.com/benjamingr/RexExp.escape\nvar $export = require('./_export');\nvar $re = require('./_replacer')(/[\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n\n$export($export.S, 'RegExp', { escape: function escape(it) { return $re(it); } });\n","'use strict';\nvar $export = require('./_export');\nvar $re = require('./_replacer')(/[&<>\"']/g, {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n});\n\n$export($export.P + $export.F, 'String', { escapeHTML: function escapeHTML() { return $re(this); } });\n","'use strict';\nvar $export = require('./_export');\nvar $re = require('./_replacer')(/&(?:amp|lt|gt|quot|apos);/g, {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n});\n\n$export($export.P + $export.F, 'String', { unescapeHTML: function unescapeHTML() { return $re(this); } });\n","(typeof navigator !== \"undefined\") && (function(root, factory) {\r\n if (typeof define === \"function\" && define.amd) {\r\n define(function() {\r\n return factory(root);\r\n });\r\n } else if (typeof module === \"object\" && module.exports) {\r\n module.exports = factory(root);\r\n } else {\r\n root.lottie = factory(root);\r\n root.bodymovin = root.lottie;\r\n }\r\n}((window || {}), function(window) {\r\n \"use strict\";\r\n var svgNS = \"http://www.w3.org/2000/svg\";\r\n\r\nvar locationHref = '';\r\n\r\nvar initialDefaultFrame = -999999;\r\n\nvar subframeEnabled = true;\r\nvar expressionsPlugin;\r\nvar isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\r\nvar cachedColors = {};\r\nvar bm_rounder = Math.round;\r\nvar bm_rnd;\r\nvar bm_pow = Math.pow;\r\nvar bm_sqrt = Math.sqrt;\r\nvar bm_abs = Math.abs;\r\nvar bm_floor = Math.floor;\r\nvar bm_max = Math.max;\r\nvar bm_min = Math.min;\r\nvar blitter = 10;\r\n\r\nvar BMMath = {};\r\n(function(){\r\n var propertyNames = Object.getOwnPropertyNames(Math);\r\n var i, len = propertyNames.length;\r\n for(i=0;i 0; --i) result += chars[Math.round(Math.random() * (chars.length - 1))];\r\n return result;\r\n}\r\n\r\nfunction HSVtoRGB(h, s, v) {\r\n var r, g, b, i, f, p, q, t;\r\n i = Math.floor(h * 6);\r\n f = h * 6 - i;\r\n p = v * (1 - s);\r\n q = v * (1 - f * s);\r\n t = v * (1 - (1 - f) * s);\r\n switch (i % 6) {\r\n case 0: r = v; g = t; b = p; break;\r\n case 1: r = q; g = v; b = p; break;\r\n case 2: r = p; g = v; b = t; break;\r\n case 3: r = p; g = q; b = v; break;\r\n case 4: r = t; g = p; b = v; break;\r\n case 5: r = v; g = p; b = q; break;\r\n }\r\n return [ r,\r\n g,\r\n b ];\r\n}\r\n\r\nfunction RGBtoHSV(r, g, b) {\r\n var max = Math.max(r, g, b), min = Math.min(r, g, b),\r\n d = max - min,\r\n h,\r\n s = (max === 0 ? 0 : d / max),\r\n v = max / 255;\r\n\r\n switch (max) {\r\n case min: h = 0; break;\r\n case r: h = (g - b) + d * (g < b ? 6: 0); h /= 6 * d; break;\r\n case g: h = (b - r) + d * 2; h /= 6 * d; break;\r\n case b: h = (r - g) + d * 4; h /= 6 * d; break;\r\n }\r\n\r\n return [\r\n h,\r\n s,\r\n v\r\n ];\r\n}\r\n\r\nfunction addSaturationToRGB(color,offset){\r\n var hsv = RGBtoHSV(color[0]*255,color[1]*255,color[2]*255);\r\n hsv[1] += offset;\r\n if (hsv[1] > 1) {\r\n hsv[1] = 1;\r\n }\r\n else if (hsv[1] <= 0) {\r\n hsv[1] = 0;\r\n }\r\n return HSVtoRGB(hsv[0],hsv[1],hsv[2]);\r\n}\r\n\r\nfunction addBrightnessToRGB(color,offset){\r\n var hsv = RGBtoHSV(color[0]*255,color[1]*255,color[2]*255);\r\n hsv[2] += offset;\r\n if (hsv[2] > 1) {\r\n hsv[2] = 1;\r\n }\r\n else if (hsv[2] < 0) {\r\n hsv[2] = 0;\r\n }\r\n return HSVtoRGB(hsv[0],hsv[1],hsv[2]);\r\n}\r\n\r\nfunction addHueToRGB(color,offset) {\r\n var hsv = RGBtoHSV(color[0]*255,color[1]*255,color[2]*255);\r\n hsv[0] += offset/360;\r\n if (hsv[0] > 1) {\r\n hsv[0] -= 1;\r\n }\r\n else if (hsv[0] < 0) {\r\n hsv[0] += 1;\r\n }\r\n return HSVtoRGB(hsv[0],hsv[1],hsv[2]);\r\n}\r\n\r\nvar rgbToHex = (function(){\r\n var colorMap = [];\r\n var i;\r\n var hex;\r\n for(i=0;i<256;i+=1){\r\n hex = i.toString(16);\r\n colorMap[i] = hex.length == 1 ? '0' + hex : hex;\r\n }\r\n\r\n return function(r, g, b) {\r\n if(r<0){\r\n r = 0;\r\n }\r\n if(g<0){\r\n g = 0;\r\n }\r\n if(b<0){\r\n b = 0;\r\n }\r\n return '#' + colorMap[r] + colorMap[g] + colorMap[b];\r\n };\r\n}());\nfunction BaseEvent(){}\r\nBaseEvent.prototype = {\r\n\ttriggerEvent: function (eventName, args) {\r\n\t if (this._cbs[eventName]) {\r\n\t var len = this._cbs[eventName].length;\r\n\t for (var i = 0; i < len; i++){\r\n\t this._cbs[eventName][i](args);\r\n\t }\r\n\t }\r\n\t},\r\n\taddEventListener: function (eventName, callback) {\r\n\t if (!this._cbs[eventName]){\r\n\t this._cbs[eventName] = [];\r\n\t }\r\n\t this._cbs[eventName].push(callback);\r\n\r\n\t\treturn function() {\r\n\t\t\tthis.removeEventListener(eventName, callback);\r\n\t\t}.bind(this);\r\n\t},\r\n\tremoveEventListener: function (eventName,callback){\r\n\t if (!callback){\r\n\t this._cbs[eventName] = null;\r\n\t }else if(this._cbs[eventName]){\r\n\t var i = 0, len = this._cbs[eventName].length;\r\n\t while(i 0) || (val > -0.000001 && val < 0)) {\r\n return _rnd(val * v) / v;\r\n }\r\n return val;\r\n }\r\n\r\n function to2dCSS() {\r\n //Doesn't make much sense to add this optimization. If it is an identity matrix, it's very likely this will get called only once since it won't be keyframed.\r\n /*if(this.isIdentity()) {\r\n return '';\r\n }*/\r\n var props = this.props;\r\n var _a = roundMatrixProperty(props[0]);\r\n var _b = roundMatrixProperty(props[1]);\r\n var _c = roundMatrixProperty(props[4]);\r\n var _d = roundMatrixProperty(props[5]);\r\n var _e = roundMatrixProperty(props[12]);\r\n var _f = roundMatrixProperty(props[13]);\r\n return \"matrix(\" + _a + ',' + _b + ',' + _c + ',' + _d + ',' + _e + ',' + _f + \")\";\r\n }\r\n\r\n return function(){\r\n this.reset = reset;\r\n this.rotate = rotate;\r\n this.rotateX = rotateX;\r\n this.rotateY = rotateY;\r\n this.rotateZ = rotateZ;\r\n this.skew = skew;\r\n this.skewFromAxis = skewFromAxis;\r\n this.shear = shear;\r\n this.scale = scale;\r\n this.setTransform = setTransform;\r\n this.translate = translate;\r\n this.transform = transform;\r\n this.applyToPoint = applyToPoint;\r\n this.applyToX = applyToX;\r\n this.applyToY = applyToY;\r\n this.applyToZ = applyToZ;\r\n this.applyToPointArray = applyToPointArray;\r\n this.applyToTriplePoints = applyToTriplePoints;\r\n this.applyToPointStringified = applyToPointStringified;\r\n this.toCSS = toCSS;\r\n this.to2dCSS = to2dCSS;\r\n this.clone = clone;\r\n this.cloneFromProps = cloneFromProps;\r\n this.equals = equals;\r\n this.inversePoints = inversePoints;\r\n this.inversePoint = inversePoint;\r\n this._t = this.transform;\r\n this.isIdentity = isIdentity;\r\n this._identity = true;\r\n this._identityCalculated = false;\r\n\r\n this.props = createTypedArray('float32', 16);\r\n this.reset();\r\n };\r\n}());\r\n\n/*\r\n Copyright 2014 David Bau.\r\n\r\n Permission is hereby granted, free of charge, to any person obtaining\r\n a copy of this software and associated documentation files (the\r\n \"Software\"), to deal in the Software without restriction, including\r\n without limitation the rights to use, copy, modify, merge, publish,\r\n distribute, sublicense, and/or sell copies of the Software, and to\r\n permit persons to whom the Software is furnished to do so, subject to\r\n the following conditions:\r\n\r\n The above copyright notice and this permission notice shall be\r\n included in all copies or substantial portions of the Software.\r\n\r\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\r\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\r\n IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\r\n CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\r\n TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n\r\n */\r\n\r\n(function (pool, math) {\r\n//\r\n// The following constants are related to IEEE 754 limits.\r\n//\r\n var global = this,\r\n width = 256, // each RC4 output is 0 <= x < 256\r\n chunks = 6, // at least six RC4 outputs for each double\r\n digits = 52, // there are 52 significant digits in a double\r\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\r\n startdenom = math.pow(width, chunks),\r\n significance = math.pow(2, digits),\r\n overflow = significance * 2,\r\n mask = width - 1,\r\n nodecrypto; // node.js crypto module, initialized at the bottom.\r\n\r\n//\r\n// seedrandom()\r\n// This is the seedrandom function described above.\r\n//\r\n function seedrandom(seed, options, callback) {\r\n var key = [];\r\n options = (options === true) ? { entropy: true } : (options || {});\r\n\r\n // Flatten the seed string or build one from local entropy if needed.\r\n var shortseed = mixkey(flatten(\r\n options.entropy ? [seed, tostring(pool)] :\r\n (seed === null) ? autoseed() : seed, 3), key);\r\n\r\n // Use the seed to initialize an ARC4 generator.\r\n var arc4 = new ARC4(key);\r\n\r\n // This function returns a random double in [0, 1) that contains\r\n // randomness in every bit of the mantissa of the IEEE 754 value.\r\n var prng = function() {\r\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\r\n d = startdenom, // and denominator d = 2 ^ 48.\r\n x = 0; // and no 'extra last byte'.\r\n while (n < significance) { // Fill up all significant digits by\r\n n = (n + x) * width; // shifting numerator and\r\n d *= width; // denominator and generating a\r\n x = arc4.g(1); // new least-significant-byte.\r\n }\r\n while (n >= overflow) { // To avoid rounding up, before adding\r\n n /= 2; // last byte, shift everything\r\n d /= 2; // right using integer math until\r\n x >>>= 1; // we have exactly the desired bits.\r\n }\r\n return (n + x) / d; // Form the number within [0, 1).\r\n };\r\n\r\n prng.int32 = function() { return arc4.g(4) | 0; };\r\n prng.quick = function() { return arc4.g(4) / 0x100000000; };\r\n prng.double = prng;\r\n\r\n // Mix the randomness into accumulated entropy.\r\n mixkey(tostring(arc4.S), pool);\r\n\r\n // Calling convention: what to return as a function of prng, seed, is_math.\r\n return (options.pass || callback ||\r\n function(prng, seed, is_math_call, state) {\r\n if (state) {\r\n // Load the arc4 state from the given state if it has an S array.\r\n if (state.S) { copy(state, arc4); }\r\n // Only provide the .state method if requested via options.state.\r\n prng.state = function() { return copy(arc4, {}); };\r\n }\r\n\r\n // If called as a method of Math (Math.seedrandom()), mutate\r\n // Math.random because that is how seedrandom.js has worked since v1.0.\r\n if (is_math_call) { math[rngname] = prng; return seed; }\r\n\r\n // Otherwise, it is a newer calling convention, so return the\r\n // prng directly.\r\n else return prng;\r\n })(\r\n prng,\r\n shortseed,\r\n 'global' in options ? options.global : (this == math),\r\n options.state);\r\n }\r\n math['seed' + rngname] = seedrandom;\r\n\r\n//\r\n// ARC4\r\n//\r\n// An ARC4 implementation. The constructor takes a key in the form of\r\n// an array of at most (width) integers that should be 0 <= x < (width).\r\n//\r\n// The g(count) method returns a pseudorandom integer that concatenates\r\n// the next (count) outputs from ARC4. Its return value is a number x\r\n// that is in the range 0 <= x < (width ^ count).\r\n//\r\n function ARC4(key) {\r\n var t, keylen = key.length,\r\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\r\n\r\n // The empty key [] is treated as [0].\r\n if (!keylen) { key = [keylen++]; }\r\n\r\n // Set up S using the standard key scheduling algorithm.\r\n while (i < width) {\r\n s[i] = i++;\r\n }\r\n for (i = 0; i < width; i++) {\r\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\r\n s[j] = t;\r\n }\r\n\r\n // The \"g\" method returns the next (count) outputs as one number.\r\n me.g = function(count) {\r\n // Using instance members instead of closure state nearly doubles speed.\r\n var t, r = 0,\r\n i = me.i, j = me.j, s = me.S;\r\n while (count--) {\r\n t = s[i = mask & (i + 1)];\r\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\r\n }\r\n me.i = i; me.j = j;\r\n return r;\r\n // For robust unpredictability, the function call below automatically\r\n // discards an initial batch of values. This is called RC4-drop[256].\r\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\r\n };\r\n }\r\n\r\n//\r\n// copy()\r\n// Copies internal state of ARC4 to or from a plain object.\r\n//\r\n function copy(f, t) {\r\n t.i = f.i;\r\n t.j = f.j;\r\n t.S = f.S.slice();\r\n return t;\r\n }\r\n\r\n//\r\n// flatten()\r\n// Converts an object tree to nested arrays of strings.\r\n//\r\n function flatten(obj, depth) {\r\n var result = [], typ = (typeof obj), prop;\r\n if (depth && typ == 'object') {\r\n for (prop in obj) {\r\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\r\n }\r\n }\r\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\r\n }\r\n\r\n//\r\n// mixkey()\r\n// Mixes a string seed into a key that is an array of integers, and\r\n// returns a shortened string seed that is equivalent to the result key.\r\n//\r\n function mixkey(seed, key) {\r\n var stringseed = seed + '', smear, j = 0;\r\n while (j < stringseed.length) {\r\n key[mask & j] =\r\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\r\n }\r\n return tostring(key);\r\n }\r\n\r\n//\r\n// autoseed()\r\n// Returns an object for autoseeding, using window.crypto and Node crypto\r\n// module if available.\r\n//\r\n function autoseed() {\r\n try {\r\n if (nodecrypto) { return tostring(nodecrypto.randomBytes(width)); }\r\n var out = new Uint8Array(width);\r\n (global.crypto || global.msCrypto).getRandomValues(out);\r\n return tostring(out);\r\n } catch (e) {\r\n var browser = global.navigator,\r\n plugins = browser && browser.plugins;\r\n return [+new Date(), global, plugins, global.screen, tostring(pool)];\r\n }\r\n }\r\n\r\n//\r\n// tostring()\r\n// Converts an array of charcodes to a string\r\n//\r\n function tostring(a) {\r\n return String.fromCharCode.apply(0, a);\r\n }\r\n\r\n//\r\n// When seedrandom.js is loaded, we immediately mix a few bits\r\n// from the built-in RNG into the entropy pool. Because we do\r\n// not want to interfere with deterministic PRNG state later,\r\n// seedrandom will not call math.random on its own again after\r\n// initialization.\r\n//\r\n mixkey(math.random(), pool);\r\n\r\n//\r\n// Nodejs and AMD support: export the implementation as a module using\r\n// either convention.\r\n//\r\n\r\n// End anonymous scope, and pass initial values.\r\n})(\r\n [], // pool: entropy pool starts empty\r\n BMMath // math: package containing random, pow, and seedrandom\r\n);\nvar BezierFactory = (function(){\r\n /**\r\n * BezierEasing - use bezier curve for transition easing function\r\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\r\n *\r\n * Credits: is based on Firefox's nsSMILKeySpline.cpp\r\n * Usage:\r\n * var spline = BezierEasing([ 0.25, 0.1, 0.25, 1.0 ])\r\n * spline.get(x) => returns the easing value | x must be in [0, 1] range\r\n *\r\n */\r\n\r\n var ob = {};\r\n ob.getBezierEasing = getBezierEasing;\r\n var beziers = {};\r\n\r\n function getBezierEasing(a,b,c,d,nm){\r\n var str = nm || ('bez_' + a+'_'+b+'_'+c+'_'+d).replace(/\\./g, 'p');\r\n if(beziers[str]){\r\n return beziers[str];\r\n }\r\n var bezEasing = new BezierEasing([a,b,c,d]);\r\n beziers[str] = bezEasing;\r\n return bezEasing;\r\n }\r\n\r\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\r\n var NEWTON_ITERATIONS = 4;\r\n var NEWTON_MIN_SLOPE = 0.001;\r\n var SUBDIVISION_PRECISION = 0.0000001;\r\n var SUBDIVISION_MAX_ITERATIONS = 10;\r\n\r\n var kSplineTableSize = 11;\r\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\r\n\r\n var float32ArraySupported = typeof Float32Array === \"function\";\r\n\r\n function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }\r\n function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }\r\n function C (aA1) { return 3.0 * aA1; }\r\n\r\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\r\n function calcBezier (aT, aA1, aA2) {\r\n return ((A(aA1, aA2)*aT + B(aA1, aA2))*aT + C(aA1))*aT;\r\n }\r\n\r\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\r\n function getSlope (aT, aA1, aA2) {\r\n return 3.0 * A(aA1, aA2)*aT*aT + 2.0 * B(aA1, aA2) * aT + C(aA1);\r\n }\r\n\r\n function binarySubdivide (aX, aA, aB, mX1, mX2) {\r\n var currentX, currentT, i = 0;\r\n do {\r\n currentT = aA + (aB - aA) / 2.0;\r\n currentX = calcBezier(currentT, mX1, mX2) - aX;\r\n if (currentX > 0.0) {\r\n aB = currentT;\r\n } else {\r\n aA = currentT;\r\n }\r\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\r\n return currentT;\r\n }\r\n\r\n function newtonRaphsonIterate (aX, aGuessT, mX1, mX2) {\r\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\r\n var currentSlope = getSlope(aGuessT, mX1, mX2);\r\n if (currentSlope === 0.0) return aGuessT;\r\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\r\n aGuessT -= currentX / currentSlope;\r\n }\r\n return aGuessT;\r\n }\r\n\r\n /**\r\n * points is an array of [ mX1, mY1, mX2, mY2 ]\r\n */\r\n function BezierEasing (points) {\r\n this._p = points;\r\n this._mSampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\r\n this._precomputed = false;\r\n\r\n this.get = this.get.bind(this);\r\n }\r\n\r\n BezierEasing.prototype = {\r\n\r\n get: function (x) {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n if (!this._precomputed) this._precompute();\r\n if (mX1 === mY1 && mX2 === mY2) return x; // linear\r\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\r\n if (x === 0) return 0;\r\n if (x === 1) return 1;\r\n return calcBezier(this._getTForX(x), mY1, mY2);\r\n },\r\n\r\n // Private part\r\n\r\n _precompute: function () {\r\n var mX1 = this._p[0],\r\n mY1 = this._p[1],\r\n mX2 = this._p[2],\r\n mY2 = this._p[3];\r\n this._precomputed = true;\r\n if (mX1 !== mY1 || mX2 !== mY2)\r\n this._calcSampleValues();\r\n },\r\n\r\n _calcSampleValues: function () {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2];\r\n for (var i = 0; i < kSplineTableSize; ++i) {\r\n this._mSampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\r\n }\r\n },\r\n\r\n /**\r\n * getTForX chose the fastest heuristic to determine the percentage value precisely from a given X projection.\r\n */\r\n _getTForX: function (aX) {\r\n var mX1 = this._p[0],\r\n mX2 = this._p[2],\r\n mSampleValues = this._mSampleValues;\r\n\r\n var intervalStart = 0.0;\r\n var currentSample = 1;\r\n var lastSample = kSplineTableSize - 1;\r\n\r\n for (; currentSample !== lastSample && mSampleValues[currentSample] <= aX; ++currentSample) {\r\n intervalStart += kSampleStepSize;\r\n }\r\n --currentSample;\r\n\r\n // Interpolate to provide an initial guess for t\r\n var dist = (aX - mSampleValues[currentSample]) / (mSampleValues[currentSample+1] - mSampleValues[currentSample]);\r\n var guessForT = intervalStart + dist * kSampleStepSize;\r\n\r\n var initialSlope = getSlope(guessForT, mX1, mX2);\r\n if (initialSlope >= NEWTON_MIN_SLOPE) {\r\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\r\n } else if (initialSlope === 0.0) {\r\n return guessForT;\r\n } else {\r\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\r\n }\r\n }\r\n };\r\n\r\n return ob;\r\n\r\n}());\n(function () {\r\n var lastTime = 0;\r\n var vendors = ['ms', 'moz', 'webkit', 'o'];\r\n for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\r\n window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\r\n window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];\r\n }\r\n if(!window.requestAnimationFrame)\r\n window.requestAnimationFrame = function (callback, element) {\r\n var currTime = new Date().getTime();\r\n var timeToCall = Math.max(0, 16 - (currTime - lastTime));\r\n var id = setTimeout(function () {\r\n callback(currTime + timeToCall);\r\n },\r\n timeToCall);\r\n lastTime = currTime + timeToCall;\r\n return id;\r\n };\r\n if(!window.cancelAnimationFrame)\r\n window.cancelAnimationFrame = function (id) {\r\n clearTimeout(id);\r\n };\r\n}());\r\n\nfunction extendPrototype(sources,destination){\r\n var i, len = sources.length, sourcePrototype;\r\n for (i = 0;i < len;i += 1) {\r\n sourcePrototype = sources[i].prototype;\r\n for (var attr in sourcePrototype) {\r\n if (sourcePrototype.hasOwnProperty(attr)) destination.prototype[attr] = sourcePrototype[attr];\r\n }\r\n }\r\n}\r\n\r\nfunction getDescriptor(object, prop) {\r\n return Object.getOwnPropertyDescriptor(object, prop);\r\n}\r\n\r\nfunction createProxyFunction(prototype) {\r\n\tfunction ProxyFunction(){}\r\n\tProxyFunction.prototype = prototype;\r\n\treturn ProxyFunction;\r\n}\nfunction bezFunction(){\r\n\r\n var easingFunctions = [];\r\n var math = Math;\r\n\r\n function pointOnLine2D(x1,y1, x2,y2, x3,y3){\r\n var det1 = (x1*y2) + (y1*x3) + (x2*y3) - (x3*y2) - (y3*x1) - (x2*y1);\r\n return det1 > -0.001 && det1 < 0.001;\r\n }\r\n\r\n function pointOnLine3D(x1,y1,z1, x2,y2,z2, x3,y3,z3){\r\n if(z1 === 0 && z2 === 0 && z3 === 0) {\r\n return pointOnLine2D(x1,y1, x2,y2, x3,y3);\r\n }\r\n var dist1 = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2) + Math.pow(z2 - z1, 2));\r\n var dist2 = Math.sqrt(Math.pow(x3 - x1, 2) + Math.pow(y3 - y1, 2) + Math.pow(z3 - z1, 2));\r\n var dist3 = Math.sqrt(Math.pow(x3 - x2, 2) + Math.pow(y3 - y2, 2) + Math.pow(z3 - z2, 2));\r\n var diffDist;\r\n if(dist1 > dist2){\r\n if(dist1 > dist3){\r\n diffDist = dist1 - dist2 - dist3;\r\n } else {\r\n diffDist = dist3 - dist2 - dist1;\r\n }\r\n } else if(dist3 > dist2){\r\n diffDist = dist3 - dist2 - dist1;\r\n } else {\r\n diffDist = dist2 - dist1 - dist3;\r\n }\r\n return diffDist > -0.0001 && diffDist < 0.0001;\r\n }\r\n\r\n var getBezierLength = (function(){\r\n\r\n return function(pt1,pt2,pt3,pt4){\r\n var curveSegments = defaultCurveSegments;\r\n var k;\r\n var i, len;\r\n var ptCoord,perc,addedLength = 0;\r\n var ptDistance;\r\n var point = [],lastPoint = [];\r\n var lengthData = bezier_length_pool.newElement();\r\n len = pt3.length;\r\n for(k=0;k lengthPos ? -1 : 1;\r\n var flag = true;\r\n while(flag){\r\n if(lengths[initPos] <= lengthPos && lengths[initPos+1] > lengthPos){\r\n lPerc = (lengthPos - lengths[initPos]) / (lengths[initPos+1] - lengths[initPos]);\r\n flag = false;\r\n }else{\r\n initPos += dir;\r\n }\r\n if(initPos < 0 || initPos >= len - 1){\r\n //FIX for TypedArrays that don't store floating point values with enough accuracy\r\n if(initPos === len - 1) {\r\n return percents[initPos];\r\n }\r\n flag = false;\r\n }\r\n }\r\n return percents[initPos] + (percents[initPos+1] - percents[initPos])*lPerc;\r\n }\r\n }\r\n\r\n function getPointInSegment(pt1, pt2, pt3, pt4, percent, bezierData) {\r\n var t1 = getDistancePerc(percent,bezierData);\r\n var u0 = 1;\r\n var u1 = 1 - t1;\r\n var ptX = Math.round((u1*u1*u1* pt1[0] + (t1*u1*u1 + u1*t1*u1 + u1*u1*t1)* pt3[0] + (t1*t1*u1 + u1*t1*t1 + t1*u1*t1)*pt4[0] + t1*t1*t1* pt2[0])* 1000) / 1000;\r\n var ptY = Math.round((u1*u1*u1* pt1[1] + (t1*u1*u1 + u1*t1*u1 + u1*u1*t1)* pt3[1] + (t1*t1*u1 + u1*t1*t1 + t1*u1*t1)*pt4[1] + t1*t1*t1* pt2[1])* 1000) / 1000;\r\n return [ptX, ptY];\r\n }\r\n\r\n function getSegmentArray() {\r\n\r\n }\r\n\r\n var bezier_segment_points = createTypedArray('float32', 8);\r\n\r\n function getNewSegment(pt1,pt2,pt3,pt4,startPerc,endPerc, bezierData){\r\n\r\n startPerc = startPerc < 0 ? 0 : startPerc > 1 ? 1 : startPerc;\r\n var t0 = getDistancePerc(startPerc,bezierData);\r\n endPerc = endPerc > 1 ? 1 : endPerc;\r\n var t1 = getDistancePerc(endPerc,bezierData);\r\n var i, len = pt1.length;\r\n var u0 = 1 - t0;\r\n var u1 = 1 - t1;\r\n var u0u0u0 = u0*u0*u0;\r\n var t0u0u0_3 = t0*u0*u0*3;\r\n var t0t0u0_3 = t0*t0*u0*3;\r\n var t0t0t0 = t0*t0*t0;\r\n //\r\n var u0u0u1 = u0*u0*u1;\r\n var t0u0u1_3 = t0*u0*u1 + u0*t0*u1 + u0*u0*t1;\r\n var t0t0u1_3 = t0*t0*u1 + u0*t0*t1 + t0*u0*t1;\r\n var t0t0t1 = t0*t0*t1;\r\n //\r\n var u0u1u1 = u0*u1*u1;\r\n var t0u1u1_3 = t0*u1*u1 + u0*t1*u1 + u0*u1*t1;\r\n var t0t1u1_3 = t0*t1*u1 + u0*t1*t1 + t0*u1*t1;\r\n var t0t1t1 = t0*t1*t1;\r\n //\r\n var u1u1u1 = u1*u1*u1;\r\n var t1u1u1_3 = t1*u1*u1 + u1*t1*u1 + u1*u1*t1;\r\n var t1t1u1_3 = t1*t1*u1 + u1*t1*t1 + t1*u1*t1;\r\n var t1t1t1 = t1*t1*t1;\r\n for(i=0;i=0;i-=1){\r\n if(arr[i].ty == 'sh'){\r\n if(arr[i].ks.k.i){\r\n convertPathsToAbsoluteValues(arr[i].ks.k);\r\n }else{\r\n jLen = arr[i].ks.k.length;\r\n for(j=0;janimVersion[0]){\r\n return true;\r\n } else if(animVersion[0] > minimum[0]){\r\n return false;\r\n }\r\n if(minimum[1]>animVersion[1]){\r\n return true;\r\n } else if(animVersion[1] > minimum[1]){\r\n return false;\r\n }\r\n if(minimum[2]>animVersion[2]){\r\n return true;\r\n } else if(animVersion[2] > minimum[2]){\r\n return false;\r\n }\r\n }\r\n\r\n var checkText = (function(){\r\n var minimumVersion = [4,4,14];\r\n\r\n function updateTextLayer(textLayer){\r\n var documentData = textLayer.t.d;\r\n textLayer.t.d = {\r\n k: [\r\n {\r\n s:documentData,\r\n t:0\r\n }\r\n ]\r\n };\r\n }\r\n\r\n function iterateLayers(layers){\r\n var i, len = layers.length;\r\n for(i=0;i=0;i-=1){\r\n if(arr[i].ty == 'sh'){\r\n if(arr[i].ks.k.i){\r\n arr[i].ks.k.c = arr[i].closed;\r\n }else{\r\n jLen = arr[i].ks.k.length;\r\n for(j=0;j 0) {\r\n shouldLoadFont = false;\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var s = createTag('style');\r\n s.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n s.setAttribute('f-origin', fontArr[i].origin);\r\n s.setAttribute('f-family', fontArr[i].fFamily);\r\n s.type = \"text/css\";\r\n s.innerHTML = \"@font-face {\" + \"font-family: \"+fontArr[i].fFamily+\"; font-style: normal; src: url('\"+fontArr[i].fPath+\"');}\";\r\n defs.appendChild(s);\r\n }\r\n } else if(fontArr[i].fOrigin === 'g' || fontArr[i].origin === 1){\r\n loadedSelector = document.querySelectorAll('link[f-forigin=\"g\"], link[f-origin=\"1\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j++) {\r\n if (loadedSelector[j].href.indexOf(fontArr[i].fPath) !== -1) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var l = createTag('link');\r\n l.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n l.setAttribute('f-origin', fontArr[i].origin);\r\n l.type = \"text/css\";\r\n l.rel = \"stylesheet\";\r\n l.href = fontArr[i].fPath;\r\n document.body.appendChild(l);\r\n }\r\n } else if(fontArr[i].fOrigin === 't' || fontArr[i].origin === 2){\r\n loadedSelector = document.querySelectorAll('script[f-forigin=\"t\"], script[f-origin=\"2\"]');\r\n\r\n for (j = 0; j < loadedSelector.length; j++) {\r\n if (fontArr[i].fPath === loadedSelector[j].src) {\r\n // Font is already loaded\r\n shouldLoadFont = false;\r\n }\r\n }\r\n\r\n if (shouldLoadFont) {\r\n var sc = createTag('script');\r\n sc.setAttribute('f-forigin', fontArr[i].fOrigin);\r\n sc.setAttribute('f-origin', fontArr[i].origin);\r\n sc.setAttribute('src',fontArr[i].fPath);\r\n defs.appendChild(sc);\r\n }\r\n }\r\n fontArr[i].helper = createHelper(defs,fontArr[i]);\r\n fontArr[i].cache = {};\r\n this.fonts.push(fontArr[i]);\r\n }\r\n if (_pendingFonts === 0) {\r\n this.isLoaded = true;\r\n } else {\r\n //On some cases even if the font is loaded, it won't load correctly when measuring text on canvas.\r\n //Adding this timeout seems to fix it\r\n setTimeout(this.checkLoadedFonts.bind(this), 100);\r\n }\r\n }\r\n\r\n function addChars(chars){\r\n if(!chars){\r\n return;\r\n }\r\n if(!this.chars){\r\n this.chars = [];\r\n }\r\n var i, len = chars.length;\r\n var j, jLen = this.chars.length, found;\r\n for(i=0;i= nextKeyData.t - offsetTime){\r\n if(keyData.h){\r\n keyData = nextKeyData;\r\n }\r\n iterationIndex = 0;\r\n break;\r\n }\r\n if ((nextKeyData.t - offsetTime) > frameNum){\r\n iterationIndex = i;\r\n break;\r\n }\r\n if (i < len - 1){\r\n i += 1;\r\n } else {\r\n iterationIndex = 0;\r\n flag = false;\r\n }\r\n }\r\n\r\n var k, kLen, perc, jLen, j, fnc;\r\n var nextKeyTime = nextKeyData.t - offsetTime;\r\n var keyTime = keyData.t - offsetTime;\r\n if (keyData.to) {\r\n if (!keyData.bezierData) {\r\n bez.buildBezierData(keyData);\r\n }\r\n var bezierData = keyData.bezierData;\r\n if (frameNum >= nextKeyTime || frameNum < keyTime) {\r\n var ind = frameNum >= nextKeyTime ? bezierData.points.length - 1 : 0;\r\n kLen = bezierData.points[ind].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[ind].point[k];\r\n }\r\n // caching._lastBezierData = null;\r\n } else {\r\n if (keyData.__fnct) {\r\n fnc = keyData.__fnct;\r\n } else {\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x, keyData.o.y, keyData.i.x, keyData.i.y, keyData.n).get;\r\n keyData.__fnct = fnc;\r\n }\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime));\r\n var distanceInLine = bezierData.segmentLength*perc;\r\n\r\n var segmentPerc;\r\n var addedLength = (caching.lastFrame < frameNum && caching._lastBezierData === bezierData) ? caching._lastAddedLength : 0;\r\n j = (caching.lastFrame < frameNum && caching._lastBezierData === bezierData) ? caching._lastPoint : 0;\r\n flag = true;\r\n jLen = bezierData.points.length;\r\n while (flag) {\r\n addedLength += bezierData.points[j].partialLength;\r\n if (distanceInLine === 0 || perc === 0 || j === bezierData.points.length - 1) {\r\n kLen = bezierData.points[j].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k];\r\n }\r\n break;\r\n } else if (distanceInLine >= addedLength && distanceInLine < addedLength + bezierData.points[j + 1].partialLength) {\r\n segmentPerc = (distanceInLine - addedLength) / bezierData.points[j + 1].partialLength;\r\n kLen = bezierData.points[j].point.length;\r\n for (k = 0; k < kLen; k += 1) {\r\n newValue[k] = bezierData.points[j].point[k] + (bezierData.points[j + 1].point[k] - bezierData.points[j].point[k]) * segmentPerc;\r\n }\r\n break;\r\n }\r\n if (j < jLen - 1){\r\n j += 1;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n caching._lastPoint = j;\r\n caching._lastAddedLength = addedLength - bezierData.points[j].partialLength;\r\n caching._lastBezierData = bezierData;\r\n }\r\n } else {\r\n var outX, outY, inX, inY, keyValue;\r\n len = keyData.s.length;\r\n if (this.sh && keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n newValue[0] = keyData.e[0];\r\n newValue[1] = keyData.e[1];\r\n newValue[2] = keyData.e[2];\r\n } else if (frameNum <= keyTime) {\r\n newValue[0] = keyData.s[0];\r\n newValue[1] = keyData.s[1];\r\n newValue[2] = keyData.s[2];\r\n } else {\r\n var quatStart = createQuaternion(keyData.s);\r\n var quatEnd = createQuaternion(keyData.e);\r\n var time = (frameNum - keyTime) / (nextKeyTime - keyTime);\r\n quaternionToEuler(newValue, slerp(quatStart, quatEnd, time));\r\n }\r\n \r\n } else {\r\n for(i = 0; i < len; i += 1) {\r\n if (keyData.h !== 1) {\r\n if (frameNum >= nextKeyTime) {\r\n perc = 1;\r\n } else if(frameNum < keyTime) {\r\n perc = 0;\r\n } else {\r\n if(keyData.o.x.constructor === Array) {\r\n if (!keyData.__fnct) {\r\n keyData.__fnct = [];\r\n }\r\n if (!keyData.__fnct[i]) {\r\n outX = keyData.o.x[i] || keyData.o.x[0];\r\n outY = keyData.o.y[i] || keyData.o.y[0];\r\n inX = keyData.i.x[i] || keyData.i.x[0];\r\n inY = keyData.i.y[i] || keyData.i.y[0];\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyData.__fnct[i] = fnc;\r\n } else {\r\n fnc = keyData.__fnct[i];\r\n }\r\n } else {\r\n if (!keyData.__fnct) {\r\n outX = keyData.o.x;\r\n outY = keyData.o.y;\r\n inX = keyData.i.x;\r\n inY = keyData.i.y;\r\n fnc = BezierFactory.getBezierEasing(outX, outY, inX, inY).get;\r\n keyData.__fnct = fnc;\r\n } else {\r\n fnc = keyData.__fnct;\r\n }\r\n }\r\n perc = fnc((frameNum - keyTime) / (nextKeyTime - keyTime ));\r\n }\r\n }\r\n\r\n keyValue = keyData.h === 1 ? keyData.s[i] : keyData.s[i] + (keyData.e[i] - keyData.s[i]) * perc;\r\n\r\n if (len === 1) {\r\n newValue = keyValue;\r\n } else {\r\n newValue[i] = keyValue;\r\n }\r\n }\r\n }\r\n }\r\n caching.lastIndex = iterationIndex;\r\n return newValue;\r\n }\r\n\r\n //based on @Toji's https://github.com/toji/gl-matrix/\r\n function slerp(a, b, t) {\r\n var out = [];\r\n var ax = a[0], ay = a[1], az = a[2], aw = a[3],\r\n bx = b[0], by = b[1], bz = b[2], bw = b[3]\r\n\r\n var omega, cosom, sinom, scale0, scale1;\r\n\r\n cosom = ax * bx + ay * by + az * bz + aw * bw;\r\n if (cosom < 0.0) {\r\n cosom = -cosom;\r\n bx = -bx;\r\n by = -by;\r\n bz = -bz;\r\n bw = -bw;\r\n }\r\n if ((1.0 - cosom) > 0.000001) {\r\n omega = Math.acos(cosom);\r\n sinom = Math.sin(omega);\r\n scale0 = Math.sin((1.0 - t) * omega) / sinom;\r\n scale1 = Math.sin(t * omega) / sinom;\r\n } else {\r\n scale0 = 1.0 - t;\r\n scale1 = t;\r\n }\r\n out[0] = scale0 * ax + scale1 * bx;\r\n out[1] = scale0 * ay + scale1 * by;\r\n out[2] = scale0 * az + scale1 * bz;\r\n out[3] = scale0 * aw + scale1 * bw;\r\n\r\n return out;\r\n }\r\n\r\n function quaternionToEuler(out, quat) {\r\n var qx = quat[0];\r\n var qy = quat[1];\r\n var qz = quat[2];\r\n var qw = quat[3];\r\n var heading = Math.atan2(2*qy*qw-2*qx*qz , 1 - 2*qy*qy - 2*qz*qz)\r\n var attitude = Math.asin(2*qx*qy + 2*qz*qw) \r\n var bank = Math.atan2(2*qx*qw-2*qy*qz , 1 - 2*qx*qx - 2*qz*qz);\r\n out[0] = heading/degToRads;\r\n out[1] = attitude/degToRads;\r\n out[2] = bank/degToRads;\r\n }\r\n\r\n function createQuaternion(values) {\r\n var heading = values[0] * degToRads;\r\n var attitude = values[1] * degToRads;\r\n var bank = values[2] * degToRads;\r\n var c1 = Math.cos(heading / 2);\r\n var c2 = Math.cos(attitude / 2);\r\n var c3 = Math.cos(bank / 2);\r\n var s1 = Math.sin(heading / 2);\r\n var s2 = Math.sin(attitude / 2);\r\n var s3 = Math.sin(bank / 2);\r\n var w = c1 * c2 * c3 - s1 * s2 * s3;\r\n var x = s1 * s2 * c3 + c1 * c2 * s3;\r\n var y = s1 * c2 * c3 + c1 * s2 * s3;\r\n var z = c1 * s2 * c3 - s1 * c2 * s3;\r\n\r\n return [x,y,z,w];\r\n }\r\n\r\n function getValueAtCurrentTime(){\r\n var frameNum = this.comp.renderedFrame - this.offsetTime;\r\n var initTime = this.keyframes[0].t - this.offsetTime;\r\n var endTime = this.keyframes[this.keyframes.length- 1].t-this.offsetTime;\r\n if(!(frameNum === this._caching.lastFrame || (this._caching.lastFrame !== initFrame && ((this._caching.lastFrame >= endTime && frameNum >= endTime) || (this._caching.lastFrame < initTime && frameNum < initTime))))){\r\n if(this._caching.lastFrame >= frameNum) {\r\n this._caching._lastBezierData = null;\r\n this._caching.lastIndex = 0;\r\n }\r\n\r\n var renderResult = this.interpolateValue(frameNum, this._caching);\r\n this.pv = renderResult;\r\n }\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function setVValue(val) {\r\n var multipliedValue;\r\n if(this.propType === 'unidimensional') {\r\n multipliedValue = val * this.mult;\r\n if(math_abs(this.v - multipliedValue) > 0.00001) {\r\n this.v = multipliedValue;\r\n this._mdf = true;\r\n }\r\n } else {\r\n var i = 0, len = this.v.length;\r\n while (i < len) {\r\n multipliedValue = val[i] * this.mult;\r\n if (math_abs(this.v[i] - multipliedValue) > 0.00001) {\r\n this.v[i] = multipliedValue;\r\n this._mdf = true;\r\n }\r\n i += 1;\r\n }\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if(this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\r\n return;\r\n } \r\n if(this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = this._isFirstFrame;\r\n var multipliedValue;\r\n var i, len = this.effectsSequence.length;\r\n var finalValue = this.kf ? this.pv : this.data.k;\r\n for(i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n this.setVValue(finalValue);\r\n this._isFirstFrame = false;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n function ValueProperty(elem, data, mult, container){\r\n this.propType = 'unidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this.v = mult ? data.k * mult : data.k;\r\n this.pv = data.k;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.vel = 0;\r\n this.effectsSequence = [];\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function MultiDimensionalProperty(elem, data, mult, container) {\r\n this.propType = 'multidimensional';\r\n this.mult = mult || 1;\r\n this.data = data;\r\n this._mdf = false;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.k = false;\r\n this.kf = false;\r\n this.frameId = -1;\r\n var i, len = data.k.length;\r\n this.v = createTypedArray('float32', len);\r\n this.pv = createTypedArray('float32', len);\r\n var arr = createTypedArray('float32', len);\r\n this.vel = createTypedArray('float32', len);\r\n for (i = 0; i < len; i += 1) {\r\n this.v[i] = data.k[i] * this.mult;\r\n this.pv[i] = data.k[i];\r\n }\r\n this._isFirstFrame = true;\r\n this.effectsSequence = [];\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedValueProperty(elem, data, mult, container) {\r\n this.propType = 'unidimensional';\r\n this.keyframes = data.k;\r\n this.offsetTime = elem.data.st;\r\n this.frameId = -1;\r\n this._caching = {lastFrame: initFrame, lastIndex: 0, value: 0, _lastBezierData: null};\r\n this.k = true;\r\n this.kf = true;\r\n this.data = data;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.v = initFrame;\r\n this.pv = initFrame;\r\n this._isFirstFrame = true;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function KeyframedMultidimensionalProperty(elem, data, mult, container){\r\n this.propType = 'multidimensional';\r\n var i, len = data.k.length;\r\n var s, e,to,ti;\r\n for (i = 0; i < len - 1; i += 1) {\r\n if (data.k[i].to && data.k[i].s && data.k[i].e) {\r\n s = data.k[i].s;\r\n e = data.k[i].e;\r\n to = data.k[i].to;\r\n ti = data.k[i].ti;\r\n if((s.length === 2 && !(s[0] === e[0] && s[1] === e[1]) && bez.pointOnLine2D(s[0],s[1],e[0],e[1],s[0] + to[0],s[1] + to[1]) && bez.pointOnLine2D(s[0],s[1],e[0],e[1],e[0] + ti[0],e[1] + ti[1])) || (s.length === 3 && !(s[0] === e[0] && s[1] === e[1] && s[2] === e[2]) && bez.pointOnLine3D(s[0],s[1],s[2],e[0],e[1],e[2],s[0] + to[0],s[1] + to[1],s[2] + to[2]) && bez.pointOnLine3D(s[0],s[1],s[2],e[0],e[1],e[2],e[0] + ti[0],e[1] + ti[1],e[2] + ti[2]))){\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n if(s[0] === e[0] && s[1] === e[1] && to[0] === 0 && to[1] === 0 && ti[0] === 0 && ti[1] === 0) {\r\n if(s.length === 2 || (s[2] === e[2] && to[2] === 0 && ti[2] === 0)) {\r\n data.k[i].to = null;\r\n data.k[i].ti = null;\r\n }\r\n }\r\n }\r\n }\r\n this.effectsSequence = [getValueAtCurrentTime.bind(this)];\r\n this.keyframes = data.k;\r\n this.offsetTime = elem.data.st;\r\n this.k = true;\r\n this.kf = true;\r\n this._isFirstFrame = true;\r\n this.mult = mult || 1;\r\n this.elem = elem;\r\n this.container = container;\r\n this.comp = elem.comp;\r\n this.getValue = processEffectsSequence;\r\n this.setVValue = setVValue;\r\n this.interpolateValue = interpolateValue;\r\n this.frameId = -1;\r\n var arrLen = data.k[0].s.length;\r\n this.v = createTypedArray('float32', arrLen);\r\n this.pv = createTypedArray('float32', arrLen);\r\n for (i = 0; i < arrLen; i += 1) {\r\n this.v[i] = initFrame;\r\n this.pv[i] = initFrame;\r\n }\r\n this._caching={lastFrame:initFrame,lastIndex:0,value:createTypedArray('float32', arrLen)};\r\n this.addEffect = addEffect;\r\n }\r\n\r\n function getProp(elem,data,type, mult, container) {\r\n var p;\r\n if(data.a === 0){\r\n if(type === 0) {\r\n p = new ValueProperty(elem,data,mult, container);\r\n } else {\r\n p = new MultiDimensionalProperty(elem,data, mult, container);\r\n }\r\n } else if(data.a === 1){\r\n if(type === 0) {\r\n p = new KeyframedValueProperty(elem,data,mult, container);\r\n } else {\r\n p = new KeyframedMultidimensionalProperty(elem,data, mult, container);\r\n }\r\n } else if(!data.k.length){\r\n p = new ValueProperty(elem,data, mult, container);\r\n }else if(typeof(data.k[0]) === 'number'){\r\n p = new MultiDimensionalProperty(elem,data, mult, container);\r\n }else{\r\n switch(type){\r\n case 0:\r\n p = new KeyframedValueProperty(elem,data,mult, container);\r\n break;\r\n case 1:\r\n p = new KeyframedMultidimensionalProperty(elem,data,mult, container);\r\n break;\r\n }\r\n }\r\n if(p.effectsSequence.length){\r\n container.addDynamicProperty(p);\r\n }\r\n return p;\r\n }\r\n\r\n var ob = {\r\n getProp: getProp\r\n };\r\n return ob;\r\n}());\nvar TransformPropertyFactory = (function() {\r\n\r\n function applyToMatrix(mat) {\r\n var _mdf = this._mdf;\r\n this.iterateDynamicProperties();\r\n this._mdf = this._mdf || _mdf;\r\n if (this.a) {\r\n mat.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n if (this.s) {\r\n mat.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n if (this.sk) {\r\n mat.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n if (this.r) {\r\n mat.rotate(-this.r.v);\r\n } else {\r\n mat.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n }\r\n if (this.data.p.s) {\r\n if (this.data.p.z) {\r\n mat.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n mat.translate(this.px.v, this.py.v, 0);\r\n }\r\n } else {\r\n mat.translate(this.p.v[0], this.p.v[1], -this.p.v[2]);\r\n }\r\n }\r\n function processKeys(forceRender){\r\n if (this.elem.globalData.frameId === this.frameId) {\r\n return;\r\n }\r\n if(this._isDirty) {\r\n this.precalculateMatrix();\r\n this._isDirty = false;\r\n }\r\n\r\n this.iterateDynamicProperties();\r\n\r\n if (this._mdf || forceRender) {\r\n this.v.cloneFromProps(this.pre.props);\r\n if (this.appliedTransformations < 1) {\r\n this.v.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n }\r\n if(this.appliedTransformations < 2) {\r\n this.v.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n }\r\n if (this.sk && this.appliedTransformations < 3) {\r\n this.v.skewFromAxis(-this.sk.v, this.sa.v);\r\n }\r\n if (this.r && this.appliedTransformations < 4) {\r\n this.v.rotate(-this.r.v);\r\n } else if (!this.r && this.appliedTransformations < 4){\r\n this.v.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n }\r\n if (this.autoOriented) {\r\n var v1,v2, frameRate = this.elem.globalData.frameRate;\r\n if(this.p && this.p.keyframes && this.p.getValueAtTime) {\r\n if (this.p._caching.lastFrame+this.p.offsetTime <= this.p.keyframes[0].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[0].t + 0.01) / frameRate,0);\r\n v2 = this.p.getValueAtTime(this.p.keyframes[0].t / frameRate, 0);\r\n } else if(this.p._caching.lastFrame+this.p.offsetTime >= this.p.keyframes[this.p.keyframes.length - 1].t) {\r\n v1 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t / frameRate), 0);\r\n v2 = this.p.getValueAtTime((this.p.keyframes[this.p.keyframes.length - 1].t - 0.01) / frameRate, 0);\r\n } else {\r\n v1 = this.p.pv;\r\n v2 = this.p.getValueAtTime((this.p._caching.lastFrame+this.p.offsetTime - 0.01) / frameRate, this.p.offsetTime);\r\n }\r\n } else if(this.px && this.px.keyframes && this.py.keyframes && this.px.getValueAtTime && this.py.getValueAtTime) {\r\n v1 = [];\r\n v2 = [];\r\n var px = this.px, py = this.py, frameRate;\r\n if (px._caching.lastFrame+px.offsetTime <= px.keyframes[0].t) {\r\n v1[0] = px.getValueAtTime((px.keyframes[0].t + 0.01) / frameRate,0);\r\n v1[1] = py.getValueAtTime((py.keyframes[0].t + 0.01) / frameRate,0);\r\n v2[0] = px.getValueAtTime((px.keyframes[0].t) / frameRate,0);\r\n v2[1] = py.getValueAtTime((py.keyframes[0].t) / frameRate,0);\r\n } else if(px._caching.lastFrame+px.offsetTime >= px.keyframes[px.keyframes.length - 1].t) {\r\n v1[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t / frameRate),0);\r\n v1[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t / frameRate),0);\r\n v2[0] = px.getValueAtTime((px.keyframes[px.keyframes.length - 1].t - 0.01) / frameRate,0);\r\n v2[1] = py.getValueAtTime((py.keyframes[py.keyframes.length - 1].t - 0.01) / frameRate,0);\r\n } else {\r\n v1 = [px.pv, py.pv];\r\n v2[0] = px.getValueAtTime((px._caching.lastFrame+px.offsetTime - 0.01) / frameRate,px.offsetTime);\r\n v2[1] = py.getValueAtTime((py._caching.lastFrame+py.offsetTime - 0.01) / frameRate,py.offsetTime);\r\n }\r\n }\r\n this.v.rotate(-Math.atan2(v1[1] - v2[1], v1[0] - v2[0]));\r\n }\r\n if(this.data.p.s){\r\n if(this.data.p.z) {\r\n this.v.translate(this.px.v, this.py.v, -this.pz.v);\r\n } else {\r\n this.v.translate(this.px.v, this.py.v, 0);\r\n }\r\n }else{\r\n this.v.translate(this.p.v[0],this.p.v[1],-this.p.v[2]);\r\n }\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n }\r\n\r\n function precalculateMatrix() {\r\n if(!this.a.k) {\r\n this.pre.translate(-this.a.v[0], -this.a.v[1], this.a.v[2]);\r\n this.appliedTransformations = 1;\r\n } else {\r\n return;\r\n }\r\n if(!this.s.effectsSequence.length) {\r\n this.pre.scale(this.s.v[0], this.s.v[1], this.s.v[2]);\r\n this.appliedTransformations = 2;\r\n } else {\r\n return;\r\n }\r\n if(this.sk) {\r\n if(!this.sk.effectsSequence.length && !this.sa.effectsSequence.length) {\r\n this.pre.skewFromAxis(-this.sk.v, this.sa.v);\r\n this.appliedTransformations = 3;\r\n } else {\r\n return;\r\n }\r\n }\r\n if (this.r) {\r\n if(!this.r.effectsSequence.length) {\r\n this.pre.rotate(-this.r.v);\r\n this.appliedTransformations = 4;\r\n } else {\r\n return;\r\n }\r\n } else if(!this.rz.effectsSequence.length && !this.ry.effectsSequence.length && !this.rx.effectsSequence.length && !this.or.effectsSequence.length) {\r\n this.pre.rotateZ(-this.rz.v).rotateY(this.ry.v).rotateX(this.rx.v).rotateZ(-this.or.v[2]).rotateY(this.or.v[1]).rotateX(this.or.v[0]);\r\n this.appliedTransformations = 4;\r\n }\r\n }\r\n\r\n function autoOrient(){\r\n //\r\n //var prevP = this.getValueAtTime();\r\n }\r\n\r\n function addDynamicProperty(prop) {\r\n this._addDynamicProperty(prop);\r\n this.elem.addDynamicProperty(prop);\r\n this._isDirty = true;\r\n }\r\n\r\n function TransformProperty(elem,data,container){\r\n this.elem = elem;\r\n this.frameId = -1;\r\n this.propType = 'transform';\r\n this.data = data;\r\n this.v = new Matrix();\r\n //Precalculated matrix with non animated properties\r\n this.pre = new Matrix();\r\n this.appliedTransformations = 0;\r\n this.initDynamicPropertyContainer(container || elem);\r\n if(data.p.s){\r\n this.px = PropertyFactory.getProp(elem,data.p.x,0,0,this);\r\n this.py = PropertyFactory.getProp(elem,data.p.y,0,0,this);\r\n if(data.p.z){\r\n this.pz = PropertyFactory.getProp(elem,data.p.z,0,0,this);\r\n }\r\n }else{\r\n this.p = PropertyFactory.getProp(elem,data.p,1,0,this);\r\n }\r\n if(data.r) {\r\n this.r = PropertyFactory.getProp(elem, data.r, 0, degToRads, this);\r\n } else if(data.rx) {\r\n this.rx = PropertyFactory.getProp(elem, data.rx, 0, degToRads, this);\r\n this.ry = PropertyFactory.getProp(elem, data.ry, 0, degToRads, this);\r\n this.rz = PropertyFactory.getProp(elem, data.rz, 0, degToRads, this);\r\n if(data.or.k[0].ti) {\r\n var i, len = data.or.k.length;\r\n for(i=0;i= this._maxLength) {\r\n\t\tthis.doubleArrayLength();\r\n\t}\r\n\tswitch(type){\r\n\t\tcase 'v':\r\n\t\t\tarr = this.v;\r\n\t\t\tbreak;\r\n\t\tcase 'i':\r\n\t\t\tarr = this.i;\r\n\t\t\tbreak;\r\n\t\tcase 'o':\r\n\t\t\tarr = this.o;\r\n\t\t\tbreak;\r\n\t}\r\n\tif(!arr[pos] || (arr[pos] && !replace)){\r\n\t\tarr[pos] = point_pool.newElement();\r\n\t}\r\n\tarr[pos][0] = x;\r\n\tarr[pos][1] = y;\r\n};\r\n\r\nShapePath.prototype.setTripleAt = function(vX,vY,oX,oY,iX,iY,pos, replace) {\r\n\tthis.setXYAt(vX,vY,'v',pos, replace);\r\n\tthis.setXYAt(oX,oY,'o',pos, replace);\r\n\tthis.setXYAt(iX,iY,'i',pos, replace);\r\n};\r\n\r\nShapePath.prototype.reverse = function() {\r\n\tvar newPath = new ShapePath();\r\n\tnewPath.setPathData(this.c, this._length);\r\n\tvar vertices = this.v, outPoints = this.o, inPoints = this.i;\r\n\tvar init = 0;\r\n\tif (this.c) {\r\n\t\tnewPath.setTripleAt(vertices[0][0], vertices[0][1], inPoints[0][0], inPoints[0][1], outPoints[0][0], outPoints[0][1], 0, false);\r\n init = 1;\r\n }\r\n var cnt = this._length - 1;\r\n var len = this._length;\r\n\r\n var i;\r\n for (i = init; i < len; i += 1) {\r\n \tnewPath.setTripleAt(vertices[cnt][0], vertices[cnt][1], inPoints[cnt][0], inPoints[cnt][1], outPoints[cnt][0], outPoints[cnt][1], i, false);\r\n cnt -= 1;\r\n }\r\n return newPath;\r\n};\nvar ShapePropertyFactory = (function(){\r\n\r\n var initFrame = -999999;\r\n\r\n function interpolateShape(frameNum, previousValue, caching) {\r\n var iterationIndex = caching.lastIndex;\r\n var keyPropS,keyPropE,isHold, j, k, jLen, kLen, perc, vertexValue;\r\n var kf = this.keyframes;\r\n if(frameNum < kf[0].t-this.offsetTime){\r\n keyPropS = kf[0].s[0];\r\n isHold = true;\r\n iterationIndex = 0;\r\n }else if(frameNum >= kf[kf.length - 1].t-this.offsetTime){\r\n if(kf[kf.length - 2].h === 1){\r\n keyPropS = kf[kf.length - 1].s[0];\r\n }else{\r\n keyPropS = kf[kf.length - 2].e[0];\r\n }\r\n isHold = true;\r\n }else{\r\n var i = iterationIndex;\r\n var len = kf.length- 1,flag = true,keyData,nextKeyData;\r\n while(flag){\r\n keyData = kf[i];\r\n nextKeyData = kf[i+1];\r\n if((nextKeyData.t - this.offsetTime) > frameNum){\r\n break;\r\n }\r\n if(i < len - 1){\r\n i += 1;\r\n }else{\r\n flag = false;\r\n }\r\n }\r\n isHold = keyData.h === 1;\r\n iterationIndex = i;\r\n if(!isHold){\r\n if(frameNum >= nextKeyData.t-this.offsetTime){\r\n perc = 1;\r\n }else if(frameNum < keyData.t-this.offsetTime){\r\n perc = 0;\r\n }else{\r\n var fnc;\r\n if(keyData.__fnct){\r\n fnc = keyData.__fnct;\r\n }else{\r\n fnc = BezierFactory.getBezierEasing(keyData.o.x,keyData.o.y,keyData.i.x,keyData.i.y).get;\r\n keyData.__fnct = fnc;\r\n }\r\n perc = fnc((frameNum-(keyData.t-this.offsetTime))/((nextKeyData.t-this.offsetTime)-(keyData.t-this.offsetTime)));\r\n }\r\n keyPropE = keyData.e[0];\r\n }\r\n keyPropS = keyData.s[0];\r\n }\r\n jLen = previousValue._length;\r\n kLen = keyPropS.i[0].length;\r\n caching.lastIndex = iterationIndex;\r\n\r\n for(j=0;j endTime && frameNum > endTime)))){\r\n ////\r\n this._caching.lastIndex = lastFrame < frameNum ? this._caching.lastIndex : 0;\r\n this.interpolateShape(frameNum, this.pv, this._caching);\r\n ////\r\n }\r\n this._caching.lastFrame = frameNum;\r\n return this.pv;\r\n }\r\n\r\n function resetShape(){\r\n this.paths = this.localShapeCollection;\r\n }\r\n\r\n function shapesEqual(shape1, shape2) {\r\n if(shape1._length !== shape2._length || shape1.c !== shape2.c){\r\n return false;\r\n }\r\n var i, len = shape1._length;\r\n for(i = 0; i < len; i += 1) {\r\n if(shape1.v[i][0] !== shape2.v[i][0] \r\n || shape1.v[i][1] !== shape2.v[i][1] \r\n || shape1.o[i][0] !== shape2.o[i][0] \r\n || shape1.o[i][1] !== shape2.o[i][1] \r\n || shape1.i[i][0] !== shape2.i[i][0] \r\n || shape1.i[i][1] !== shape2.i[i][1]) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n function setVValue(newPath) {\r\n if(!shapesEqual(this.v, newPath)) {\r\n this.v = shape_pool.clone(newPath);\r\n this.localShapeCollection.releaseShapes();\r\n this.localShapeCollection.addShape(this.v);\r\n this._mdf = true;\r\n this.paths = this.localShapeCollection;\r\n }\r\n }\r\n\r\n function processEffectsSequence() {\r\n if(this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) {\r\n return;\r\n }\r\n if(this.lock) {\r\n this.setVValue(this.pv);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = false;\r\n var finalValue = this.kf ? this.pv : this.data.ks ? this.data.ks.k : this.data.pt.k;\r\n var i, len = this.effectsSequence.length;\r\n for(i = 0; i < len; i += 1) {\r\n finalValue = this.effectsSequence[i](finalValue);\r\n }\r\n this.setVValue(finalValue);\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n };\r\n\r\n function ShapeProperty(elem, data, type){\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.container = elem;\r\n this.elem = elem;\r\n this.data = data;\r\n this.k = false;\r\n this.kf = false;\r\n this._mdf = false;\r\n var pathData = type === 3 ? data.pt.k : data.ks.k;\r\n this.v = shape_pool.clone(pathData);\r\n this.pv = shape_pool.clone(this.v);\r\n this.localShapeCollection = shapeCollection_pool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.reset = resetShape;\r\n this.effectsSequence = [];\r\n }\r\n\r\n function addEffect(effectFunction) {\r\n this.effectsSequence.push(effectFunction);\r\n this.container.addDynamicProperty(this);\r\n }\r\n\r\n ShapeProperty.prototype.interpolateShape = interpolateShape;\r\n ShapeProperty.prototype.getValue = processEffectsSequence;\r\n ShapeProperty.prototype.setVValue = setVValue;\r\n ShapeProperty.prototype.addEffect = addEffect;\r\n\r\n function KeyframedShapeProperty(elem,data,type){\r\n this.propType = 'shape';\r\n this.comp = elem.comp;\r\n this.elem = elem;\r\n this.container = elem;\r\n this.offsetTime = elem.data.st;\r\n this.keyframes = type === 3 ? data.pt.k : data.ks.k;\r\n this.k = true;\r\n this.kf = true;\r\n var i, len = this.keyframes[0].s[0].i.length;\r\n var jLen = this.keyframes[0].s[0].i[0].length;\r\n this.v = shape_pool.newElement();\r\n this.v.setPathData(this.keyframes[0].s[0].c, len);\r\n this.pv = shape_pool.clone(this.v);\r\n this.localShapeCollection = shapeCollection_pool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.paths.addShape(this.v);\r\n this.lastFrame = initFrame;\r\n this.reset = resetShape;\r\n this._caching = {lastFrame: initFrame, lastIndex: 0};\r\n this.effectsSequence = [interpolateShapeCurrentTime.bind(this)];\r\n }\r\n KeyframedShapeProperty.prototype.getValue = processEffectsSequence;\r\n KeyframedShapeProperty.prototype.interpolateShape = interpolateShape;\r\n KeyframedShapeProperty.prototype.setVValue = setVValue;\r\n KeyframedShapeProperty.prototype.addEffect = addEffect;\r\n\r\n var EllShapeProperty = (function(){\r\n\r\n var cPoint = roundCorner;\r\n\r\n function EllShapeProperty(elem,data) {\r\n /*this.v = {\r\n v: createSizedArray(4),\r\n i: createSizedArray(4),\r\n o: createSizedArray(4),\r\n c: true\r\n };*/\r\n this.v = shape_pool.newElement();\r\n this.v.setPathData(true, 4);\r\n this.localShapeCollection = shapeCollection_pool.newShapeCollection();\r\n this.paths = this.localShapeCollection;\r\n this.localShapeCollection.addShape(this.v);\r\n this.d = data.d;\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.frameId = -1;\r\n this.initDynamicPropertyContainer(elem);\r\n this.p = PropertyFactory.getProp(elem,data.p,1,0,this);\r\n this.s = PropertyFactory.getProp(elem,data.s,1,0,this);\r\n if(this.dynamicProperties.length){\r\n this.k = true;\r\n }else{\r\n this.k = false;\r\n this.convertEllToPath();\r\n }\r\n };\r\n\r\n EllShapeProperty.prototype = {\r\n reset: resetShape,\r\n getValue: function (){\r\n if(this.elem.globalData.frameId === this.frameId){\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n\r\n if(this._mdf){\r\n this.convertEllToPath();\r\n }\r\n },\r\n convertEllToPath: function() {\r\n var p0 = this.p.v[0], p1 = this.p.v[1], s0 = this.s.v[0]/2, s1 = this.s.v[1]/2;\r\n var _cw = this.d !== 3;\r\n var _v = this.v;\r\n _v.v[0][0] = p0;\r\n _v.v[0][1] = p1 - s1;\r\n _v.v[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.v[1][1] = p1;\r\n _v.v[2][0] = p0;\r\n _v.v[2][1] = p1 + s1;\r\n _v.v[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.v[3][1] = p1;\r\n _v.i[0][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.i[0][1] = p1 - s1;\r\n _v.i[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.i[1][1] = p1 - s1 * cPoint;\r\n _v.i[2][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.i[2][1] = p1 + s1;\r\n _v.i[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.i[3][1] = p1 + s1 * cPoint;\r\n _v.o[0][0] = _cw ? p0 + s0 * cPoint : p0 - s0 * cPoint;\r\n _v.o[0][1] = p1 - s1;\r\n _v.o[1][0] = _cw ? p0 + s0 : p0 - s0;\r\n _v.o[1][1] = p1 + s1 * cPoint;\r\n _v.o[2][0] = _cw ? p0 - s0 * cPoint : p0 + s0 * cPoint;\r\n _v.o[2][1] = p1 + s1;\r\n _v.o[3][0] = _cw ? p0 - s0 : p0 + s0;\r\n _v.o[3][1] = p1 - s1 * cPoint;\r\n }\r\n }\r\n\r\n extendPrototype([DynamicPropertyContainer], EllShapeProperty);\r\n\r\n return EllShapeProperty;\r\n }());\r\n\r\n var StarShapeProperty = (function() {\r\n\r\n function StarShapeProperty(elem,data) {\r\n this.v = shape_pool.newElement();\r\n this.v.setPathData(true, 0);\r\n this.elem = elem;\r\n this.comp = elem.comp;\r\n this.data = data;\r\n this.frameId = -1;\r\n this.d = data.d;\r\n this.initDynamicPropertyContainer(elem);\r\n if(data.sy === 1){\r\n this.ir = PropertyFactory.getProp(elem,data.ir,0,0,this);\r\n this.is = PropertyFactory.getProp(elem,data.is,0,0.01,this);\r\n this.convertToPath = this.convertStarToPath;\r\n } else {\r\n this.convertToPath = this.convertPolygonToPath;\r\n }\r\n this.pt = PropertyFactory.getProp(elem,data.pt,0,0,this);\r\n this.p = PropertyFactory.getProp(elem,data.p,1,0,this);\r\n this.r = PropertyFactory.getProp(elem,data.r,0,degToRads,this);\r\n this.or = PropertyFactory.getProp(elem,data.or,0,0,this);\r\n this.os = PropertyFactory.getProp(elem,data.os,0,0.01,this);\r\n this.localShapeCollection = shapeCollection_pool.newShapeCollection();\r\n this.localShapeCollection.addShape(this.v);\r\n this.paths = this.localShapeCollection;\r\n if(this.dynamicProperties.length){\r\n this.k = true;\r\n }else{\r\n this.k = false;\r\n this.convertToPath();\r\n }\r\n };\r\n\r\n StarShapeProperty.prototype = {\r\n reset: resetShape,\r\n getValue: function() {\r\n if(this.elem.globalData.frameId === this.frameId){\r\n return;\r\n }\r\n this.frameId = this.elem.globalData.frameId;\r\n this.iterateDynamicProperties();\r\n if(this._mdf){\r\n this.convertToPath();\r\n }\r\n },\r\n convertStarToPath: function() {\r\n var numPts = Math.floor(this.pt.v)*2;\r\n var angle = Math.PI*2/numPts;\r\n /*this.v.v.length = numPts;\r\n this.v.i.length = numPts;\r\n this.v.o.length = numPts;*/\r\n var longFlag = true;\r\n var longRad = this.or.v;\r\n var shortRad = this.ir.v;\r\n var longRound = this.os.v;\r\n var shortRound = this.is.v;\r\n var longPerimSegment = 2*Math.PI*longRad/(numPts*2);\r\n var shortPerimSegment = 2*Math.PI*shortRad/(numPts*2);\r\n var i, rad,roundness,perimSegment, currentAng = -Math.PI/ 2;\r\n currentAng += this.r.v;\r\n var dir = this.data.d === 3 ? -1 : 1;\r\n this.v._length = 0;\r\n for(i=0;i= 1) {\r\n segments.push({\r\n s: s - 1,\r\n e: e - 1\r\n });\r\n } else {\r\n segments.push({\r\n s: s,\r\n e: 1\r\n });\r\n segments.push({\r\n s: 0,\r\n e: e - 1\r\n });\r\n }\r\n var shapeSegments = [];\r\n var i, len = segments.length, segmentOb;\r\n for (i = 0; i < len; i += 1) {\r\n segmentOb = segments[i];\r\n if (segmentOb.e * totalModifierLength < addedLength || segmentOb.s * totalModifierLength > addedLength + shapeLength) {\r\n \r\n } else {\r\n var shapeS, shapeE;\r\n if (segmentOb.s * totalModifierLength <= addedLength) {\r\n shapeS = 0;\r\n } else {\r\n shapeS = (segmentOb.s * totalModifierLength - addedLength) / shapeLength;\r\n }\r\n if(segmentOb.e * totalModifierLength >= addedLength + shapeLength) {\r\n shapeE = 1;\r\n } else {\r\n shapeE = ((segmentOb.e * totalModifierLength - addedLength) / shapeLength);\r\n }\r\n shapeSegments.push([shapeS, shapeE]);\r\n }\r\n }\r\n if (!shapeSegments.length) {\r\n shapeSegments.push([0, 0]);\r\n }\r\n return shapeSegments;\r\n};\r\n\r\nTrimModifier.prototype.releasePathsData = function(pathsData) {\r\n var i, len = pathsData.length;\r\n for (i = 0; i < len; i += 1) {\r\n segments_length_pool.release(pathsData[i]);\r\n }\r\n pathsData.length = 0;\r\n return pathsData;\r\n};\r\n\r\nTrimModifier.prototype.processShapes = function(_isFirstFrame) {\r\n var s, e;\r\n if (this._mdf || _isFirstFrame) {\r\n var o = (this.o.v % 360) / 360;\r\n if (o < 0) {\r\n o += 1;\r\n }\r\n s = (this.s.v > 1 ? 1 : this.s.v < 0 ? 0 : this.s.v) + o;\r\n e = (this.e.v > 1 ? 1 : this.e.v < 0 ? 0 : this.e.v) + o;\r\n if (s === e) {\r\n\r\n }\r\n if (s > e) {\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n s = Math.round(s * 10000) * 0.0001;\r\n e = Math.round(e * 10000) * 0.0001;\r\n this.sValue = s;\r\n this.eValue = e;\r\n } else {\r\n s = this.sValue;\r\n e = this.eValue;\r\n }\r\n var shapePaths;\r\n var i, len = this.shapes.length, j, jLen;\r\n var pathsData, pathData, totalShapeLength, totalModifierLength = 0;\r\n\r\n if (e === s) {\r\n for (i = 0; i < len; i += 1) {\r\n this.shapes[i].localShapeCollection.releaseShapes();\r\n this.shapes[i].shape._mdf = true;\r\n this.shapes[i].shape.paths = this.shapes[i].localShapeCollection;\r\n }\r\n } else if (!((e === 1 && s === 0) || (e===0 && s === 1))){\r\n var segments = [], shapeData, localShapeCollection;\r\n for (i = 0; i < len; i += 1) {\r\n shapeData = this.shapes[i];\r\n // if shape hasn't changed and trim properties haven't changed, cached previous path can be used\r\n if (!shapeData.shape._mdf && !this._mdf && !_isFirstFrame && this.m !== 2) {\r\n shapeData.shape.paths = shapeData.localShapeCollection;\r\n } else {\r\n shapePaths = shapeData.shape.paths;\r\n jLen = shapePaths._length;\r\n totalShapeLength = 0;\r\n if (!shapeData.shape._mdf && shapeData.pathsData.length) {\r\n totalShapeLength = shapeData.totalShapeLength;\r\n } else {\r\n pathsData = this.releasePathsData(shapeData.pathsData);\r\n for (j = 0; j < jLen; j += 1) {\r\n pathData = bez.getSegmentsLength(shapePaths.shapes[j]);\r\n pathsData.push(pathData);\r\n totalShapeLength += pathData.totalLength;\r\n }\r\n shapeData.totalShapeLength = totalShapeLength;\r\n shapeData.pathsData = pathsData;\r\n }\r\n\r\n totalModifierLength += totalShapeLength;\r\n shapeData.shape._mdf = true;\r\n }\r\n }\r\n var shapeS = s, shapeE = e, addedLength = 0, edges;\r\n for (i = len - 1; i >= 0; i -= 1) {\r\n shapeData = this.shapes[i];\r\n if (shapeData.shape._mdf) {\r\n localShapeCollection = shapeData.localShapeCollection;\r\n localShapeCollection.releaseShapes();\r\n //if m === 2 means paths are trimmed individually so edges need to be found for this specific shape relative to whoel group\r\n if (this.m === 2 && len > 1) {\r\n edges = this.calculateShapeEdges(s, e, shapeData.totalShapeLength, addedLength, totalModifierLength);\r\n addedLength += shapeData.totalShapeLength;\r\n } else {\r\n edges = [[shapeS, shapeE]];\r\n }\r\n jLen = edges.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n shapeS = edges[j][0];\r\n shapeE = edges[j][1];\r\n segments.length = 0;\r\n if (shapeE <= 1) {\r\n segments.push({\r\n s:shapeData.totalShapeLength * shapeS,\r\n e:shapeData.totalShapeLength * shapeE\r\n });\r\n } else if (shapeS >= 1) {\r\n segments.push({\r\n s:shapeData.totalShapeLength * (shapeS - 1),\r\n e:shapeData.totalShapeLength * (shapeE - 1)\r\n });\r\n } else {\r\n segments.push({\r\n s:shapeData.totalShapeLength * shapeS,\r\n e:shapeData.totalShapeLength\r\n });\r\n segments.push({\r\n s:0,\r\n e:shapeData.totalShapeLength * (shapeE - 1)\r\n });\r\n }\r\n var newShapesData = this.addShapes(shapeData,segments[0]);\r\n if (segments[0].s !== segments[0].e) {\r\n if (segments.length > 1) {\r\n var lastShapeInCollection = shapeData.shape.paths.shapes[shapeData.shape.paths._length - 1];\r\n if (lastShapeInCollection.c) {\r\n var lastShape = newShapesData.pop();\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1], lastShape);\r\n } else {\r\n this.addPaths(newShapesData, localShapeCollection);\r\n newShapesData = this.addShapes(shapeData, segments[1]);\r\n }\r\n } \r\n this.addPaths(newShapesData, localShapeCollection);\r\n }\r\n \r\n }\r\n shapeData.shape.paths = localShapeCollection;\r\n }\r\n }\r\n } else if (this._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n //Releasign Trim Cached paths data when no trim applied in case shapes are modified inbetween.\r\n //Don't remove this even if it's losing cached info.\r\n this.shapes[i].pathsData.length = 0;\r\n this.shapes[i].shape._mdf = true;\r\n }\r\n }\r\n};\r\n\r\nTrimModifier.prototype.addPaths = function(newPaths, localShapeCollection) {\r\n var i, len = newPaths.length;\r\n for (i = 0; i < len; i += 1) {\r\n localShapeCollection.addShape(newPaths[i]);\r\n }\r\n};\r\n\r\nTrimModifier.prototype.addSegment = function(pt1, pt2, pt3, pt4, shapePath, pos, newShape) {\r\n shapePath.setXYAt(pt2[0], pt2[1], 'o', pos);\r\n shapePath.setXYAt(pt3[0], pt3[1], 'i', pos + 1);\r\n if(newShape){\r\n shapePath.setXYAt(pt1[0], pt1[1], 'v', pos);\r\n }\r\n shapePath.setXYAt(pt4[0], pt4[1], 'v', pos + 1);\r\n};\r\n\r\nTrimModifier.prototype.addSegmentFromArray = function(points, shapePath, pos, newShape) {\r\n shapePath.setXYAt(points[1], points[5], 'o', pos);\r\n shapePath.setXYAt(points[2], points[6], 'i', pos + 1);\r\n if(newShape){\r\n shapePath.setXYAt(points[0], points[4], 'v', pos);\r\n }\r\n shapePath.setXYAt(points[3], points[7], 'v', pos + 1);\r\n};\r\n\r\nTrimModifier.prototype.addShapes = function(shapeData, shapeSegment, shapePath) {\r\n var pathsData = shapeData.pathsData;\r\n var shapePaths = shapeData.shape.paths.shapes;\r\n var i, len = shapeData.shape.paths._length, j, jLen;\r\n var addedLength = 0;\r\n var currentLengthData,segmentCount;\r\n var lengths;\r\n var segment;\r\n var shapes = [];\r\n var initPos;\r\n var newShape = true;\r\n if (!shapePath) {\r\n shapePath = shape_pool.newElement();\r\n segmentCount = 0;\r\n initPos = 0;\r\n } else {\r\n segmentCount = shapePath._length;\r\n initPos = shapePath._length;\r\n }\r\n shapes.push(shapePath);\r\n for (i = 0; i < len; i += 1) {\r\n lengths = pathsData[i].lengths;\r\n shapePath.c = shapePaths[i].c;\r\n jLen = shapePaths[i].c ? lengths.length : lengths.length + 1;\r\n for (j = 1; j < jLen; j +=1) {\r\n currentLengthData = lengths[j-1];\r\n if (addedLength + currentLengthData.addedLength < shapeSegment.s) {\r\n addedLength += currentLengthData.addedLength;\r\n shapePath.c = false;\r\n } else if(addedLength > shapeSegment.e) {\r\n shapePath.c = false;\r\n break;\r\n } else {\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + currentLengthData.addedLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[j], shapePaths[i].v[j], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[j], shapePaths[i].o[j - 1], shapePaths[i].i[j], (shapeSegment.s - addedLength)/currentLengthData.addedLength,(shapeSegment.e - addedLength)/currentLengthData.addedLength, lengths[j-1]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\r\n // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n }\r\n if (shapePaths[i].c && lengths.length) {\r\n currentLengthData = lengths[j - 1];\r\n if (addedLength <= shapeSegment.e) {\r\n var segmentLength = lengths[j - 1].addedLength;\r\n if (shapeSegment.s <= addedLength && shapeSegment.e >= addedLength + segmentLength) {\r\n this.addSegment(shapePaths[i].v[j - 1], shapePaths[i].o[j - 1], shapePaths[i].i[0], shapePaths[i].v[0], shapePath, segmentCount, newShape);\r\n newShape = false;\r\n } else {\r\n segment = bez.getNewSegment(shapePaths[i].v[j - 1], shapePaths[i].v[0], shapePaths[i].o[j - 1], shapePaths[i].i[0], (shapeSegment.s - addedLength) / segmentLength, (shapeSegment.e - addedLength) / segmentLength, lengths[j - 1]);\r\n this.addSegmentFromArray(segment, shapePath, segmentCount, newShape);\r\n // this.addSegment(segment.pt1, segment.pt3, segment.pt4, segment.pt2, shapePath, segmentCount, newShape);\r\n newShape = false;\r\n shapePath.c = false;\r\n }\r\n } else {\r\n shapePath.c = false;\r\n }\r\n addedLength += currentLengthData.addedLength;\r\n segmentCount += 1;\r\n }\r\n if (shapePath._length) {\r\n shapePath.setXYAt(shapePath.v[initPos][0], shapePath.v[initPos][1], 'i', initPos);\r\n shapePath.setXYAt(shapePath.v[shapePath._length - 1][0], shapePath.v[shapePath._length - 1][1],'o', shapePath._length - 1);\r\n }\r\n if (addedLength > shapeSegment.e) {\r\n break;\r\n }\r\n if (i < len - 1) {\r\n shapePath = shape_pool.newElement();\r\n newShape = true;\r\n shapes.push(shapePath);\r\n segmentCount = 0;\r\n }\r\n }\r\n return shapes;\r\n};\r\n\r\n\r\nShapeModifiers.registerModifier('tm', TrimModifier);\nfunction RoundCornersModifier(){}\r\nextendPrototype([ShapeModifier],RoundCornersModifier);\r\nRoundCornersModifier.prototype.initModifierProperties = function(elem,data){\r\n this.getValue = this.processKeys;\r\n this.rd = PropertyFactory.getProp(elem,data.r,0,null,this);\r\n this._isAnimated = !!this.rd.effectsSequence.length;\r\n};\r\n\r\nRoundCornersModifier.prototype.processPath = function(path, round){\r\n var cloned_path = shape_pool.newElement();\r\n cloned_path.c = path.c;\r\n var i, len = path._length;\r\n var currentV,currentI,currentO,closerV, newV,newO,newI,distance,newPosPerc,index = 0;\r\n var vX,vY,oX,oY,iX,iY;\r\n for(i=0;i0){\r\n pos -= 1;\r\n //this._elements.unshift(arr.splice(pos,1)[0]);\r\n this._elements.unshift(arr[pos]);\r\n cont += 1;\r\n }\r\n if(this.dynamicProperties.length){\r\n this.k = true;\r\n }else{\r\n this.getValue(true);\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.resetElements = function(elements){\r\n var i, len = elements.length;\r\n for(i = 0; i < len; i += 1) {\r\n elements[i]._processed = false;\r\n if(elements[i].ty === 'gr'){\r\n this.resetElements(elements[i].it);\r\n }\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.cloneElements = function(elements){\r\n var i, len = elements.length;\r\n var newElements = JSON.parse(JSON.stringify(elements));\r\n this.resetElements(newElements);\r\n return newElements;\r\n};\r\n\r\nRepeaterModifier.prototype.changeGroupRender = function(elements, renderFlag) {\r\n var i, len = elements.length;\r\n for(i = 0; i < len ; i += 1) {\r\n elements[i]._render = renderFlag;\r\n if(elements[i].ty === 'gr') {\r\n this.changeGroupRender(elements[i].it, renderFlag);\r\n }\r\n }\r\n};\r\n\r\nRepeaterModifier.prototype.processShapes = function(_isFirstFrame) {\r\n var items, itemsTransform, i, dir, cont;\r\n if(this._mdf || _isFirstFrame){\r\n var copies = Math.ceil(this.c.v);\r\n if(this._groups.length < copies){\r\n while(this._groups.length < copies){\r\n var group = {\r\n it:this.cloneElements(this._elements),\r\n ty:'gr'\r\n };\r\n group.it.push({\"a\":{\"a\":0,\"ix\":1,\"k\":[0,0]},\"nm\":\"Transform\",\"o\":{\"a\":0,\"ix\":7,\"k\":100},\"p\":{\"a\":0,\"ix\":2,\"k\":[0,0]},\"r\":{\"a\":1,\"ix\":6,\"k\":[{s:0,e:0,t:0},{s:0,e:0,t:1}]},\"s\":{\"a\":0,\"ix\":3,\"k\":[100,100]},\"sa\":{\"a\":0,\"ix\":5,\"k\":0},\"sk\":{\"a\":0,\"ix\":4,\"k\":0},\"ty\":\"tr\"});\r\n \r\n this.arr.splice(0,0,group);\r\n this._groups.splice(0,0,group);\r\n this._currentCopies += 1;\r\n }\r\n this.elem.reloadShapes();\r\n }\r\n cont = 0;\r\n var renderFlag;\r\n for(i = 0; i <= this._groups.length - 1; i += 1){\r\n renderFlag = cont < copies;\r\n this._groups[i]._render = renderFlag;\r\n this.changeGroupRender(this._groups[i].it, renderFlag);\r\n cont += 1;\r\n }\r\n \r\n this._currentCopies = copies;\r\n ////\r\n\r\n var offset = this.o.v;\r\n var offsetModulo = offset%1;\r\n var roundOffset = offset > 0 ? Math.floor(offset) : Math.ceil(offset);\r\n var k;\r\n var tMat = this.tr.v.props;\r\n var pProps = this.pMatrix.props;\r\n var rProps = this.rMatrix.props;\r\n var sProps = this.sMatrix.props;\r\n this.pMatrix.reset();\r\n this.rMatrix.reset();\r\n this.sMatrix.reset();\r\n this.tMatrix.reset();\r\n this.matrix.reset();\r\n var iteration = 0;\r\n\r\n if(offset > 0) {\r\n while(iterationroundOffset){\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, true);\r\n iteration -= 1;\r\n }\r\n if(offsetModulo){\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, - offsetModulo, true);\r\n iteration -= offsetModulo;\r\n }\r\n }\r\n i = this.data.m === 1 ? 0 : this._currentCopies - 1;\r\n dir = this.data.m === 1 ? 1 : -1;\r\n cont = this._currentCopies;\r\n var j, jLen;\r\n while(cont){\r\n items = this.elemsData[i].it;\r\n itemsTransform = items[items.length - 1].transform.mProps.v.props;\r\n jLen = itemsTransform.length;\r\n items[items.length - 1].transform.mProps._mdf = true;\r\n items[items.length - 1].transform.op._mdf = true;\r\n items[items.length - 1].transform.op.v = this.so.v + (this.eo.v - this.so.v) * (i / (this._currentCopies - 1));\r\n if(iteration !== 0){\r\n if((i !== 0 && dir === 1) || (i !== this._currentCopies - 1 && dir === -1)){\r\n this.applyTransforms(this.pMatrix, this.rMatrix, this.sMatrix, this.tr, 1, false);\r\n }\r\n this.matrix.transform(rProps[0],rProps[1],rProps[2],rProps[3],rProps[4],rProps[5],rProps[6],rProps[7],rProps[8],rProps[9],rProps[10],rProps[11],rProps[12],rProps[13],rProps[14],rProps[15]);\r\n this.matrix.transform(sProps[0],sProps[1],sProps[2],sProps[3],sProps[4],sProps[5],sProps[6],sProps[7],sProps[8],sProps[9],sProps[10],sProps[11],sProps[12],sProps[13],sProps[14],sProps[15]);\r\n this.matrix.transform(pProps[0],pProps[1],pProps[2],pProps[3],pProps[4],pProps[5],pProps[6],pProps[7],pProps[8],pProps[9],pProps[10],pProps[11],pProps[12],pProps[13],pProps[14],pProps[15]);\r\n \r\n for(j=0;j 0.01){\r\n return false;\r\n }\r\n i += 1;\r\n }\r\n return true;\r\n};\r\n\r\nGradientProperty.prototype.checkCollapsable = function() {\r\n if (this.o.length/2 !== this.c.length/4) {\r\n return false;\r\n }\r\n if (this.data.k.k[0].s) {\r\n var i = 0, len = this.data.k.k.length;\r\n while (i < len) {\r\n if (!this.comparePoints(this.data.k.k[i].s, this.data.p)) {\r\n return false;\r\n }\r\n i += 1;\r\n }\r\n } else if(!this.comparePoints(this.data.k.k, this.data.p)) {\r\n return false;\r\n }\r\n return true;\r\n};\r\n\r\nGradientProperty.prototype.getValue = function(forceRender){\r\n this.prop.getValue();\r\n this._mdf = false;\r\n this._cmdf = false;\r\n this._omdf = false;\r\n if(this.prop._mdf || forceRender){\r\n var i, len = this.data.p*4;\r\n var mult, val;\r\n for(i=0;i= currentLength + animatorOffset || !points) {\r\n perc = (currentLength + animatorOffset - segmentLength) / currentPoint.partialLength;\r\n xPathPos = prevPoint.point[0] + (currentPoint.point[0] - prevPoint.point[0]) * perc;\r\n yPathPos = prevPoint.point[1] + (currentPoint.point[1] - prevPoint.point[1]) * perc;\r\n matrixHelper.translate(-alignment[0]*letters[i].an/200, -(alignment[1] * yOff / 100));\r\n flag = false;\r\n } else if (points) {\r\n segmentLength += currentPoint.partialLength;\r\n pointInd += 1;\r\n if (pointInd >= points.length) {\r\n pointInd = 0;\r\n segmentInd += 1;\r\n if (!segments[segmentInd]) {\r\n if (mask.v.c) {\r\n pointInd = 0;\r\n segmentInd = 0;\r\n points = segments[segmentInd].bezierData.points;\r\n } else {\r\n segmentLength -= currentPoint.partialLength;\r\n points = null;\r\n }\r\n } else {\r\n points = segments[segmentInd].bezierData.points;\r\n }\r\n }\r\n if (points) {\r\n prevPoint = currentPoint;\r\n currentPoint = points[pointInd];\r\n partialLength = currentPoint.partialLength;\r\n }\r\n }\r\n }\r\n offf = letters[i].an / 2 - letters[i].add;\r\n matrixHelper.translate(-offf, 0, 0);\r\n } else {\r\n offf = letters[i].an/2 - letters[i].add;\r\n matrixHelper.translate(-offf,0,0);\r\n\r\n // Grouping alignment\r\n matrixHelper.translate(-alignment[0]*letters[i].an/200, -alignment[1]*yOff/100, 0);\r\n }\r\n\r\n lineLength += letters[i].l/2;\r\n for(j=0;j 1;\r\n if(this.kf) {\r\n this.addEffect(this.getKeyframeValue.bind(this));\r\n }\r\n return this.kf;\r\n}\r\n\r\nTextProperty.prototype.addEffect = function(effectFunction) {\r\n\tthis.effectsSequence.push(effectFunction);\r\n this.elem.addDynamicProperty(this);\r\n};\r\n\r\nTextProperty.prototype.getValue = function(_finalValue) {\r\n if((this.elem.globalData.frameId === this.frameId || !this.effectsSequence.length) && !_finalValue) {\r\n return;\r\n }\r\n var currentValue = this.currentData;\r\n var currentIndex = this.keysIndex;\r\n if(this.lock) {\r\n this.setCurrentData(this.currentData, currentTextValue);\r\n return;\r\n }\r\n this.lock = true;\r\n this._mdf = false;\r\n var multipliedValue;\r\n var i, len = this.effectsSequence.length;\r\n var finalValue = _finalValue || this.data.d.k[this.keysIndex].s;\r\n for(i = 0; i < len; i += 1) {\r\n //Checking if index changed to prevent creating a new object every time the expression updates.\r\n if(currentIndex !== this.keysIndex) {\r\n finalValue = this.effectsSequence[i](finalValue, finalValue.t);\r\n } else {\r\n finalValue = this.effectsSequence[i](this.currentData, finalValue.t);\r\n }\r\n }\r\n if(currentValue !== finalValue) {\r\n this.setCurrentData(finalValue);\r\n }\r\n this.pv = this.v = this.currentData;\r\n this.lock = false;\r\n this.frameId = this.elem.globalData.frameId;\r\n}\r\n\r\nTextProperty.prototype.getKeyframeValue = function() {\r\n var textKeys = this.data.d.k, textDocumentData;\r\n var frameNum = this.elem.comp.renderedFrame;\r\n var i = 0, len = textKeys.length;\r\n while(i <= len - 1) {\r\n textDocumentData = textKeys[i].s;\r\n if(i === len - 1 || textKeys[i+1].t > frameNum){\r\n break;\r\n }\r\n i += 1;\r\n }\r\n if(this.keysIndex !== i) {\r\n this.keysIndex = i;\r\n }\r\n return this.data.d.k[this.keysIndex].s;\r\n};\r\n\r\nTextProperty.prototype.buildFinalText = function(text) {\r\n var combinedCharacters = FontManager.getCombinedCharacterCodes();\r\n var charactersArray = [];\r\n var i = 0, len = text.length;\r\n while (i < len) {\r\n if (combinedCharacters.indexOf(text.charCodeAt(i)) !== -1) {\r\n charactersArray[charactersArray.length - 1] += text.charAt(i);\r\n } else {\r\n charactersArray.push(text.charAt(i));\r\n }\r\n i += 1;\r\n }\r\n return charactersArray;\r\n}\r\n\r\nTextProperty.prototype.completeTextData = function(documentData) {\r\n documentData.__complete = true;\r\n var fontManager = this.elem.globalData.fontManager;\r\n var data = this.data;\r\n var letters = [];\r\n var i, len;\r\n var newLineFlag, index = 0, val;\r\n var anchorGrouping = data.m.g;\r\n var currentSize = 0, currentPos = 0, currentLine = 0, lineWidths = [];\r\n var lineWidth = 0;\r\n var maxLineWidth = 0;\r\n var j, jLen;\r\n var fontData = fontManager.getFontByName(documentData.f);\r\n var charData, cLength = 0;\r\n var styles = fontData.fStyle ? fontData.fStyle.split(' ') : [];\r\n\r\n var fWeight = 'normal', fStyle = 'normal';\r\n len = styles.length;\r\n var styleName;\r\n for(i=0;i boxWidth && finalText[i] !== ' '){\r\n if(lastSpaceIndex === -1){\r\n len += 1;\r\n } else {\r\n i = lastSpaceIndex;\r\n }\r\n currentHeight += documentData.finalLineHeight || documentData.finalSize*1.2;\r\n finalText.splice(i, lastSpaceIndex === i ? 1 : 0,\"\\r\");\r\n //finalText = finalText.substr(0,i) + \"\\r\" + finalText.substr(i === lastSpaceIndex ? i + 1 : i);\r\n lastSpaceIndex = -1;\r\n lineWidth = 0;\r\n }else {\r\n lineWidth += cLength;\r\n lineWidth += trackingOffset;\r\n }\r\n }\r\n currentHeight += fontData.ascent*documentData.finalSize/100;\r\n if(this.canResize && documentData.finalSize > this.minimumFontSize && boxHeight < currentHeight) {\r\n documentData.finalSize -= 1;\r\n documentData.finalLineHeight = documentData.finalSize * documentData.lh / documentData.s;\r\n } else {\r\n documentData.finalText = finalText;\r\n len = documentData.finalText.length;\r\n flag = false;\r\n }\r\n }\r\n\r\n }\r\n lineWidth = - trackingOffset;\r\n cLength = 0;\r\n var uncollapsedSpaces = 0;\r\n var currentChar;\r\n for (i = 0;i < len ;i += 1) {\r\n newLineFlag = false;\r\n currentChar = documentData.finalText[i];\r\n charCode = currentChar.charCodeAt(0);\r\n if (currentChar === ' '){\r\n val = '\\u00A0';\r\n } else if (charCode === 13 || charCode === 3) {\r\n uncollapsedSpaces = 0;\r\n lineWidths.push(lineWidth);\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidth = - 2 * trackingOffset;\r\n val = '';\r\n newLineFlag = true;\r\n currentLine += 1;\r\n }else{\r\n val = documentData.finalText[i];\r\n }\r\n if(fontManager.chars){\r\n charData = fontManager.getCharData(currentChar, fontData.fStyle, fontManager.getFontByName(documentData.f).fFamily);\r\n cLength = newLineFlag ? 0 : charData.w*documentData.finalSize/100;\r\n }else{\r\n //var charWidth = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n //tCanvasHelper.font = documentData.finalSize + 'px '+ fontManager.getFontByName(documentData.f).fFamily;\r\n cLength = fontManager.measureText(val, documentData.f, documentData.finalSize);\r\n }\r\n\r\n //\r\n if(currentChar === ' '){\r\n uncollapsedSpaces += cLength + trackingOffset;\r\n } else {\r\n lineWidth += cLength + trackingOffset + uncollapsedSpaces;\r\n uncollapsedSpaces = 0;\r\n }\r\n letters.push({l:cLength,an:cLength,add:currentSize,n:newLineFlag, anIndexes:[], val: val, line: currentLine, animatorJustifyOffset: 0});\r\n if(anchorGrouping == 2){\r\n currentSize += cLength;\r\n if(val === '' || val === '\\u00A0' || i === len - 1){\r\n if(val === '' || val === '\\u00A0'){\r\n currentSize -= cLength;\r\n }\r\n while(currentPos<=i){\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n index += 1;\r\n currentSize = 0;\r\n }\r\n }else if(anchorGrouping == 3){\r\n currentSize += cLength;\r\n if(val === '' || i === len - 1){\r\n if(val === ''){\r\n currentSize -= cLength;\r\n }\r\n while(currentPos<=i){\r\n letters[currentPos].an = currentSize;\r\n letters[currentPos].ind = index;\r\n letters[currentPos].extra = cLength;\r\n currentPos += 1;\r\n }\r\n currentSize = 0;\r\n index += 1;\r\n }\r\n }else{\r\n letters[index].ind = index;\r\n letters[index].extra = 0;\r\n index += 1;\r\n }\r\n }\r\n documentData.l = letters;\r\n maxLineWidth = lineWidth > maxLineWidth ? lineWidth : maxLineWidth;\r\n lineWidths.push(lineWidth);\r\n if(documentData.sz){\r\n documentData.boxWidth = documentData.sz[0];\r\n documentData.justifyOffset = 0;\r\n }else{\r\n documentData.boxWidth = maxLineWidth;\r\n switch(documentData.j){\r\n case 1:\r\n documentData.justifyOffset = - documentData.boxWidth;\r\n break;\r\n case 2:\r\n documentData.justifyOffset = - documentData.boxWidth/2;\r\n break;\r\n default:\r\n documentData.justifyOffset = 0;\r\n }\r\n }\r\n documentData.lineWidths = lineWidths;\r\n\r\n var animators = data.a, animatorData, letterData;\r\n jLen = animators.length;\r\n var based, ind, indexes = [];\r\n for(j=0;j= e ? 1 : 0;\r\n }else{\r\n mult = max(0,min(0.5/(e-s) + (ind-s)/(e-s),1));\r\n }\r\n mult = easer(mult);\r\n }else if(type == 3){\r\n if(e === s){\r\n mult = ind >= e ? 0 : 1;\r\n }else{\r\n mult = 1 - max(0,min(0.5/(e-s) + (ind-s)/(e-s),1));\r\n }\r\n\r\n mult = easer(mult);\r\n }else if(type == 4){\r\n if(e === s){\r\n mult = 0;\r\n }else{\r\n mult = max(0,min(0.5/(e-s) + (ind-s)/(e-s),1));\r\n if(mult<0.5){\r\n mult *= 2;\r\n }else{\r\n mult = 1 - 2*(mult-0.5);\r\n }\r\n }\r\n mult = easer(mult);\r\n }else if(type == 5){\r\n if(e === s){\r\n mult = 0;\r\n }else{\r\n var tot = e - s;\r\n /*ind += 0.5;\r\n mult = -4/(tot*tot)*(ind*ind)+(4/tot)*ind;*/\r\n ind = min(max(0,ind+0.5-s),e-s);\r\n var x = -tot/2+ind;\r\n var a = tot/2;\r\n mult = Math.sqrt(1 - (x*x)/(a*a));\r\n }\r\n mult = easer(mult);\r\n }else if(type == 6){\r\n if(e === s){\r\n mult = 0;\r\n }else{\r\n ind = min(max(0,ind+0.5-s),e-s);\r\n mult = (1+(Math.cos((Math.PI+Math.PI*2*(ind)/(e-s)))))/2;\r\n /*\r\n ind = Math.min(Math.max(s,ind),e-1);\r\n mult = (1+(Math.cos((Math.PI+Math.PI*2*(ind-s)/(e-1-s)))))/2;\r\n mult = Math.max(mult,(1/(e-1-s))/(e-1-s));*/\r\n }\r\n mult = easer(mult);\r\n }else {\r\n if(ind >= floor(s)){\r\n if(ind-s < 0){\r\n mult = 1 - (s - ind);\r\n }else{\r\n mult = max(0,min(e-ind,1));\r\n }\r\n }\r\n mult = easer(mult);\r\n }\r\n return mult*this.a.v;\r\n },\r\n getValue: function(newCharsFlag) {\r\n this.iterateDynamicProperties();\r\n this._mdf = newCharsFlag || this._mdf;\r\n this._currentTextLength = this.elem.textProperty.currentData.l.length || 0;\r\n if(newCharsFlag && this.data.r === 2) {\r\n this.e.v = this._currentTextLength;\r\n }\r\n var divisor = this.data.r === 2 ? 1 : 100 / this.data.totalChars;\r\n var o = this.o.v/divisor;\r\n var s = this.s.v/divisor + o;\r\n var e = (this.e.v/divisor) + o;\r\n if(s>e){\r\n var _s = s;\r\n s = e;\r\n e = _s;\r\n }\r\n this.finalS = s;\r\n this.finalE = e;\r\n }\r\n }\r\n extendPrototype([DynamicPropertyContainer], TextSelectorProp);\r\n\r\n function getTextSelectorProp(elem, data,arr) {\r\n return new TextSelectorProp(elem, data, arr);\r\n }\r\n\r\n return {\r\n getTextSelectorProp: getTextSelectorProp\r\n };\r\n}());\r\n\r\n \nvar pool_factory = (function() {\r\n\treturn function(initialLength, _create, _release, _clone) {\r\n\r\n\t\tvar _length = 0;\r\n\t\tvar _maxLength = initialLength;\r\n\t\tvar pool = createSizedArray(_maxLength);\r\n\r\n\t\tvar ob = {\r\n\t\t\tnewElement: newElement,\r\n\t\t\trelease: release\r\n\t\t};\r\n\r\n\t\tfunction newElement(){\r\n\t\t\tvar element;\r\n\t\t\tif(_length){\r\n\t\t\t\t_length -= 1;\r\n\t\t\t\telement = pool[_length];\r\n\t\t\t} else {\r\n\t\t\t\telement = _create();\r\n\t\t\t}\r\n\t\t\treturn element;\r\n\t\t}\r\n\r\n\t\tfunction release(element) {\r\n\t\t\tif(_length === _maxLength) {\r\n\t\t\t\tpool = pooling.double(pool);\r\n\t\t\t\t_maxLength = _maxLength*2;\r\n\t\t\t}\r\n\t\t\tif (_release) {\r\n\t\t\t\t_release(element);\r\n\t\t\t}\r\n\t\t\tpool[_length] = element;\r\n\t\t\t_length += 1;\r\n\t\t}\r\n\r\n\t\tfunction clone() {\r\n\t\t\tvar clonedElement = newElement();\r\n\t\t\treturn _clone(clonedElement);\r\n\t\t}\r\n\r\n\t\treturn ob;\r\n\t};\r\n}());\r\n\nvar pooling = (function(){\r\n\r\n\tfunction double(arr){\r\n\t\treturn arr.concat(createSizedArray(arr.length));\r\n\t}\r\n\r\n\treturn {\r\n\t\tdouble: double\r\n\t};\r\n}());\nvar point_pool = (function(){\r\n\r\n\tfunction create() {\r\n\t\treturn createTypedArray('float32', 2);\r\n\t}\r\n\treturn pool_factory(8, create);\r\n}());\nvar shape_pool = (function(){\r\n\r\n\tfunction create() {\r\n\t\treturn new ShapePath();\r\n\t}\r\n\r\n\tfunction release(shapePath) {\r\n\t\tvar len = shapePath._length, i;\r\n\t\tfor(i = 0; i < len; i += 1) {\r\n\t\t\tpoint_pool.release(shapePath.v[i]);\r\n\t\t\tpoint_pool.release(shapePath.i[i]);\r\n\t\t\tpoint_pool.release(shapePath.o[i]);\r\n\t\t\tshapePath.v[i] = null;\r\n\t\t\tshapePath.i[i] = null;\r\n\t\t\tshapePath.o[i] = null;\r\n\t\t}\r\n\t\tshapePath._length = 0;\r\n\t\tshapePath.c = false;\r\n\t}\r\n\r\n\tfunction clone(shape) {\r\n\t\tvar cloned = factory.newElement();\r\n\t\tvar i, len = shape._length === undefined ? shape.v.length : shape._length;\r\n\t\tcloned.setLength(len);\r\n\t\tcloned.c = shape.c;\r\n\t\tvar pt;\r\n\t\t\r\n\t\tfor(i = 0; i < len; i += 1) {\r\n\t\t\tcloned.setTripleAt(shape.v[i][0],shape.v[i][1],shape.o[i][0],shape.o[i][1],shape.i[i][0],shape.i[i][1], i);\r\n\t\t}\r\n\t\treturn cloned;\r\n\t}\r\n\r\n\tvar factory = pool_factory(4, create, release);\r\n\tfactory.clone = clone;\r\n\r\n\treturn factory;\r\n}());\nvar shapeCollection_pool = (function(){\r\n\tvar ob = {\r\n\t\tnewShapeCollection: newShapeCollection,\r\n\t\trelease: release\r\n\t};\r\n\r\n\tvar _length = 0;\r\n\tvar _maxLength = 4;\r\n\tvar pool = createSizedArray(_maxLength);\r\n\r\n\tfunction newShapeCollection(){\r\n\t\tvar shapeCollection;\r\n\t\tif(_length){\r\n\t\t\t_length -= 1;\r\n\t\t\tshapeCollection = pool[_length];\r\n\t\t} else {\r\n\t\t\tshapeCollection = new ShapeCollection();\r\n\t\t}\r\n\t\treturn shapeCollection;\r\n\t}\r\n\r\n\tfunction release(shapeCollection) {\r\n\t\tvar i, len = shapeCollection._length;\r\n\t\tfor(i = 0; i < len; i += 1) {\r\n\t\t\tshape_pool.release(shapeCollection.shapes[i]);\r\n\t\t}\r\n\t\tshapeCollection._length = 0;\r\n\r\n\t\tif(_length === _maxLength) {\r\n\t\t\tpool = pooling.double(pool);\r\n\t\t\t_maxLength = _maxLength*2;\r\n\t\t}\r\n\t\tpool[_length] = shapeCollection;\r\n\t\t_length += 1;\r\n\t}\r\n\r\n\treturn ob;\r\n}());\nvar segments_length_pool = (function(){\r\n\r\n\tfunction create() {\r\n\t\treturn {\r\n\t\t\tlengths: [],\r\n\t\t\ttotalLength: 0\r\n\t\t};\r\n\t}\r\n\r\n\tfunction release(element) {\r\n\t\tvar i, len = element.lengths.length;\r\n\t\tfor(i=0;i= 0; i--) {\r\n if (!this.elements[i]) {\r\n data = this.layers[i];\r\n if(data.ip - data.st <= (num - this.layers[i].st) && data.op - data.st > (num - this.layers[i].st))\r\n {\r\n this.buildItem(i);\r\n }\r\n }\r\n this.completeLayers = this.elements[i] ? this.completeLayers:false;\r\n }\r\n this.checkPendingElements();\r\n};\r\n\r\nBaseRenderer.prototype.createItem = function(layer){\r\n switch(layer.ty){\r\n case 2:\r\n return this.createImage(layer);\r\n case 0:\r\n return this.createComp(layer);\r\n case 1:\r\n return this.createSolid(layer);\r\n case 3:\r\n return this.createNull(layer);\r\n case 4:\r\n return this.createShape(layer);\r\n case 5:\r\n return this.createText(layer);\r\n case 13:\r\n return this.createCamera(layer);\r\n }\r\n return this.createNull(layer);\r\n};\r\n\r\nBaseRenderer.prototype.createCamera = function(){\r\n throw new Error('You\\'re using a 3d camera. Try the html renderer.');\r\n};\r\n\r\nBaseRenderer.prototype.buildAllItems = function(){\r\n var i, len = this.layers.length;\r\n for(i=0;i= 0; i--) {\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].prepareFrame(num - this.layers[i].st);\r\n }\r\n }\r\n if(this.globalData._mdf) {\r\n for (i = 0; i < len; i += 1) {\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n }\r\n};\r\n\r\nSVGRenderer.prototype.appendElementInPos = function(element, pos){\r\n var newElement = element.getBaseElement();\r\n if(!newElement){\r\n return;\r\n }\r\n var i = 0;\r\n var nextElement;\r\n while(i 0){\r\n this.maskElement.setAttribute('id', layerId);\r\n this.element.maskedElement.setAttribute(maskRef, \"url(\" + locationHref + \"#\" + layerId + \")\");\r\n defs.appendChild(this.maskElement);\r\n }\r\n if (this.viewData.length) {\r\n this.element.addRenderableComponent(this);\r\n }\r\n\r\n}\r\n\r\nMaskElement.prototype.getMaskProperty = function(pos){\r\n return this.viewData[pos].prop;\r\n};\r\n\r\nMaskElement.prototype.renderFrame = function (isFirstFrame) {\r\n var finalMat = this.element.finalTransform.mat;\r\n var i, len = this.masksProperties.length;\r\n for (i = 0; i < len; i++) {\r\n if(this.viewData[i].prop._mdf || isFirstFrame){\r\n this.drawPath(this.masksProperties[i],this.viewData[i].prop.v,this.viewData[i]);\r\n }\r\n if(this.viewData[i].op._mdf || isFirstFrame){\r\n this.viewData[i].elem.setAttribute('fill-opacity',this.viewData[i].op.v);\r\n }\r\n if(this.masksProperties[i].mode !== 'n'){\r\n if(this.viewData[i].invRect && (this.element.finalTransform.mProp._mdf || isFirstFrame)){\r\n this.viewData[i].invRect.setAttribute('x', -finalMat.props[12]);\r\n this.viewData[i].invRect.setAttribute('y', -finalMat.props[13]);\r\n }\r\n if(this.storedData[i].x && (this.storedData[i].x._mdf || isFirstFrame)){\r\n var feMorph = this.storedData[i].expan;\r\n if(this.storedData[i].x.v < 0){\r\n if(this.storedData[i].lastOperator !== 'erode'){\r\n this.storedData[i].lastOperator = 'erode';\r\n this.storedData[i].elem.setAttribute('filter','url(' + locationHref + '#'+this.storedData[i].filterId+')');\r\n }\r\n feMorph.setAttribute('radius',-this.storedData[i].x.v);\r\n }else{\r\n if(this.storedData[i].lastOperator !== 'dilate'){\r\n this.storedData[i].lastOperator = 'dilate';\r\n this.storedData[i].elem.setAttribute('filter',null);\r\n }\r\n this.storedData[i].elem.setAttribute('stroke-width', this.storedData[i].x.v*2);\r\n\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nMaskElement.prototype.getMaskelement = function () {\r\n return this.maskElement;\r\n};\r\n\r\nMaskElement.prototype.createLayerSolidPath = function(){\r\n var path = 'M0,0 ';\r\n path += ' h' + this.globalData.compSize.w ;\r\n path += ' v' + this.globalData.compSize.h ;\r\n path += ' h-' + this.globalData.compSize.w ;\r\n path += ' v-' + this.globalData.compSize.h + ' ';\r\n return path;\r\n};\r\n\r\nMaskElement.prototype.drawPath = function(pathData,pathNodes,viewData){\r\n var pathString = \" M\"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\r\n var i, len;\r\n len = pathNodes._length;\r\n for(i=1;i 1){\r\n pathString += \" C\"+pathNodes.o[i-1][0]+','+pathNodes.o[i-1][1] + \" \"+pathNodes.i[0][0]+','+pathNodes.i[0][1] + \" \"+pathNodes.v[0][0]+','+pathNodes.v[0][1];\r\n }\r\n //pathNodes.__renderedString = pathString;\r\n\r\n if(viewData.lastPath !== pathString){\r\n var pathShapeValue = '';\r\n if(viewData.elem){\r\n if(pathNodes.c){\r\n pathShapeValue = pathData.inv ? this.solidPath + pathString : pathString;\r\n }\r\n viewData.elem.setAttribute('d',pathShapeValue);\r\n }\r\n viewData.lastPath = pathString;\r\n }\r\n};\r\n\r\nMaskElement.prototype.destroy = function(){\r\n this.element = null;\r\n this.globalData = null;\r\n this.maskElement = null;\r\n this.data = null;\r\n this.masksProperties = null;\r\n};\r\n\n/**\r\n * @file \r\n * Handles AE's layer parenting property.\r\n *\r\n */\r\n\r\nfunction HierarchyElement(){}\r\n\r\nHierarchyElement.prototype = {\r\n\t/**\r\n * @function \r\n * Initializes hierarchy properties\r\n *\r\n */\r\n\tinitHierarchy: function() {\r\n\t\t//element's parent list\r\n\t this.hierarchy = [];\r\n\t //if element is parent of another layer _isParent will be true\r\n\t this._isParent = false;\r\n\t this.checkParenting();\r\n\t},\r\n\t/**\r\n * @function \r\n * Sets layer's hierarchy.\r\n * @param {array} hierarch\r\n * layer's parent list\r\n *\r\n */ \r\n\tsetHierarchy: function(hierarchy){\r\n\t this.hierarchy = hierarchy;\r\n\t},\r\n\t/**\r\n * @function \r\n * Sets layer as parent.\r\n *\r\n */ \r\n\tsetAsParent: function() {\r\n\t this._isParent = true;\r\n\t},\r\n\t/**\r\n * @function \r\n * Searches layer's parenting chain\r\n *\r\n */ \r\n\tcheckParenting: function(){\r\n\t if (this.data.parent !== undefined){\r\n\t this.comp.buildElementParenting(this, this.data.parent, []);\r\n\t }\r\n\t}\r\n};\n/**\r\n * @file \r\n * Handles element's layer frame update.\r\n * Checks layer in point and out point\r\n *\r\n */\r\n\r\nfunction FrameElement(){}\r\n\r\nFrameElement.prototype = {\r\n /**\r\n * @function \r\n * Initializes frame related properties.\r\n *\r\n */\r\n initFrame: function(){\r\n //set to true when inpoint is rendered\r\n this._isFirstFrame = false;\r\n //list of animated properties\r\n this.dynamicProperties = [];\r\n // If layer has been modified in current tick this will be true\r\n this._mdf = false;\r\n },\r\n /**\r\n * @function \r\n * Calculates all dynamic values\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * @param {boolean} isVisible\r\n * if layers is currently in range\r\n * \r\n */\r\n prepareProperties: function(num, isVisible) {\r\n var i, len = this.dynamicProperties.length;\r\n for (i = 0;i < len; i += 1) {\r\n if (isVisible || (this._isParent && this.dynamicProperties[i].propType === 'transform')) {\r\n this.dynamicProperties[i].getValue();\r\n if (this.dynamicProperties[i]._mdf) {\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n },\r\n addDynamicProperty: function(prop) {\r\n if(this.dynamicProperties.indexOf(prop) === -1) {\r\n this.dynamicProperties.push(prop);\r\n }\r\n }\r\n};\nfunction TransformElement(){}\r\n\r\nTransformElement.prototype = {\r\n initTransform: function() {\r\n this.finalTransform = {\r\n mProp: this.data.ks ? TransformPropertyFactory.getTransformProperty(this, this.data.ks, this) : {o:0},\r\n _matMdf: false,\r\n _opMdf: false,\r\n mat: new Matrix()\r\n };\r\n if (this.data.ao) {\r\n this.finalTransform.mProp.autoOriented = true;\r\n }\r\n\r\n //TODO: check TYPE 11: Guided elements\r\n if (this.data.ty !== 11) {\r\n //this.createElements();\r\n }\r\n },\r\n renderTransform: function() {\r\n\r\n this.finalTransform._opMdf = this.finalTransform.mProp.o._mdf || this._isFirstFrame;\r\n this.finalTransform._matMdf = this.finalTransform.mProp._mdf || this._isFirstFrame;\r\n\r\n if (this.hierarchy) {\r\n var mat;\r\n var finalMat = this.finalTransform.mat;\r\n var i = 0, len = this.hierarchy.length;\r\n //Checking if any of the transformation matrices in the hierarchy chain has changed.\r\n if (!this.finalTransform._matMdf) {\r\n while (i < len) {\r\n if (this.hierarchy[i].finalTransform.mProp._mdf) {\r\n this.finalTransform._matMdf = true;\r\n break;\r\n }\r\n i += 1;\r\n }\r\n }\r\n \r\n if (this.finalTransform._matMdf) {\r\n mat = this.finalTransform.mProp.v.props;\r\n finalMat.cloneFromProps(mat);\r\n for (i = 0; i < len; i += 1) {\r\n mat = this.hierarchy[i].finalTransform.mProp.v.props;\r\n finalMat.transform(mat[0], mat[1], mat[2], mat[3], mat[4], mat[5], mat[6], mat[7], mat[8], mat[9], mat[10], mat[11], mat[12], mat[13], mat[14], mat[15]);\r\n }\r\n }\r\n }\r\n },\r\n globalToLocal: function(pt) {\r\n var transforms = [];\r\n transforms.push(this.finalTransform);\r\n var flag = true;\r\n var comp = this.comp;\r\n while (flag) {\r\n if (comp.finalTransform) {\r\n if (comp.data.hasMask) {\r\n transforms.splice(0, 0, comp.finalTransform);\r\n }\r\n comp = comp.comp;\r\n } else {\r\n flag = false;\r\n }\r\n }\r\n var i, len = transforms.length,ptNew;\r\n for (i = 0; i < len; i += 1) {\r\n ptNew = transforms[i].mat.applyToPointArray(0, 0, 0);\r\n //ptNew = transforms[i].mat.applyToPointArray(pt[0],pt[1],pt[2]);\r\n pt = [pt[0] - ptNew[0], pt[1] - ptNew[1], 0];\r\n }\r\n return pt;\r\n },\r\n mHelper: new Matrix()\r\n};\nfunction RenderableElement(){\r\n\r\n}\r\n\r\nRenderableElement.prototype = {\r\n initRenderable: function() {\r\n //layer's visibility related to inpoint and outpoint. Rename isVisible to isInRange\r\n this.isInRange = false;\r\n //layer's display state\r\n this.hidden = false;\r\n // If layer's transparency equals 0, it can be hidden\r\n this.isTransparent = false;\r\n //list of animated components\r\n this.renderableComponents = [];\r\n },\r\n addRenderableComponent: function(component) {\r\n if(this.renderableComponents.indexOf(component) === -1) {\r\n this.renderableComponents.push(component);\r\n }\r\n },\r\n removeRenderableComponent: function(component) {\r\n if(this.renderableComponents.indexOf(component) !== -1) {\r\n this.renderableComponents.splice(this.renderableComponents.indexOf(component), 1);\r\n }\r\n },\r\n prepareRenderableFrame: function(num) {\r\n this.checkLayerLimits(num);\r\n },\r\n checkTransparency: function(){\r\n if(this.finalTransform.mProp.o.v <= 0) {\r\n if(!this.isTransparent && this.globalData.renderConfig.hideOnTransparent){\r\n this.isTransparent = true;\r\n this.hide();\r\n }\r\n } else if(this.isTransparent) {\r\n this.isTransparent = false;\r\n this.show();\r\n }\r\n },\r\n /**\r\n * @function \r\n * Initializes frame related properties.\r\n *\r\n * @param {number} num\r\n * current frame number in Layer's time\r\n * \r\n */\r\n checkLayerLimits: function(num) {\r\n if(this.data.ip - this.data.st <= num && this.data.op - this.data.st > num)\r\n {\r\n if(this.isInRange !== true){\r\n this.globalData._mdf = true;\r\n this._mdf = true;\r\n this.isInRange = true;\r\n this.show();\r\n }\r\n } else {\r\n if(this.isInRange !== false){\r\n this.globalData._mdf = true;\r\n this.isInRange = false;\r\n this.hide();\r\n }\r\n }\r\n },\r\n renderRenderable: function() {\r\n var i, len = this.renderableComponents.length;\r\n for(i = 0; i < len; i += 1) {\r\n this.renderableComponents[i].renderFrame(this._isFirstFrame);\r\n }\r\n /*this.maskManager.renderFrame(this.finalTransform.mat);\r\n this.renderableEffectsManager.renderFrame(this._isFirstFrame);*/\r\n },\r\n sourceRectAtTime: function(){\r\n return {\r\n top:0,\r\n left:0,\r\n width:100,\r\n height:100\r\n };\r\n },\r\n getLayerSize: function(){\r\n if(this.data.ty === 5){\r\n return {w:this.data.textData.width,h:this.data.textData.height};\r\n }else{\r\n return {w:this.data.width,h:this.data.height};\r\n }\r\n }\r\n};\nfunction RenderableDOMElement() {}\r\n\r\n(function(){\r\n var _prototype = {\r\n initElement: function(data,globalData,comp) {\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n },\r\n hide: function(){\r\n if (!this.hidden && (!this.isInRange || this.isTransparent)) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'none';\r\n this.hidden = true;\r\n }\r\n },\r\n show: function(){\r\n if (this.isInRange && !this.isTransparent){\r\n if (!this.data.hd) {\r\n var elem = this.baseElement || this.layerElement;\r\n elem.style.display = 'block';\r\n }\r\n this.hidden = false;\r\n this._isFirstFrame = true;\r\n }\r\n },\r\n renderFrame: function() {\r\n //If it is exported as hidden (data.hd === true) no need to render\r\n //If it is not visible no need to render\r\n if (this.data.hd || this.hidden) {\r\n return;\r\n }\r\n this.renderTransform();\r\n this.renderRenderable();\r\n this.renderElement();\r\n this.renderInnerContent();\r\n if (this._isFirstFrame) {\r\n this._isFirstFrame = false;\r\n }\r\n },\r\n renderInnerContent: function() {},\r\n prepareFrame: function(num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n this.checkTransparency();\r\n },\r\n destroy: function(){\r\n this.innerElem = null;\r\n this.destroyBaseElement();\r\n }\r\n };\r\n extendPrototype([RenderableElement, createProxyFunction(_prototype)], RenderableDOMElement);\r\n}());\nfunction ProcessedElement(element, position) {\r\n\tthis.elem = element;\r\n\tthis.pos = position;\r\n}\nfunction SVGStyleData(data, level) {\r\n\tthis.data = data;\r\n\tthis.type = data.ty;\r\n\tthis.d = '';\r\n\tthis.lvl = level;\r\n\tthis._mdf = false;\r\n\tthis.closed = data.hd === true;\r\n\tthis.pElem = createNS('path');\r\n\tthis.msElem = null;\r\n}\r\n\r\nSVGStyleData.prototype.reset = function() {\r\n\tthis.d = '';\r\n\tthis._mdf = false;\r\n};\nfunction SVGShapeData(transformers, level, shape) {\r\n this.caches = [];\r\n this.styles = [];\r\n this.transformers = transformers;\r\n this.lStr = '';\r\n this.sh = shape;\r\n this.lvl = level;\r\n //TODO find if there are some cases where _isAnimated can be false. \r\n // For now, since shapes add up with other shapes. They have to be calculated every time.\r\n // One way of finding out is checking if all styles associated to this shape depend only of this shape\r\n this._isAnimated = !!shape.k;\r\n // TODO: commenting this for now since all shapes are animated\r\n var i = 0, len = transformers.length;\r\n while(i < len) {\r\n \tif(transformers[i].mProps.dynamicProperties.length) {\r\n \t\tthis._isAnimated = true;\r\n \t\tbreak;\r\n \t}\r\n \ti += 1;\r\n }\r\n}\r\n\r\nSVGShapeData.prototype.setAsAnimated = function() {\r\n this._isAnimated = true;\r\n}\nfunction SVGTransformData(mProps, op, container) {\r\n\tthis.transform = {\r\n\t\tmProps: mProps,\r\n\t\top: op,\r\n\t\tcontainer: container\r\n\t};\r\n\tthis.elements = [];\r\n this._isAnimated = this.transform.mProps.dynamicProperties.length || this.transform.op.effectsSequence.length;\r\n}\nfunction SVGStrokeStyleData(elem, data, styleOb){\r\n\tthis.initDynamicPropertyContainer(elem);\r\n\tthis.getValue = this.iterateDynamicProperties;\r\n\tthis.o = PropertyFactory.getProp(elem,data.o,0,0.01,this);\r\n\tthis.w = PropertyFactory.getProp(elem,data.w,0,null,this);\r\n\tthis.d = new DashProperty(elem,data.d||{},'svg',this);\r\n\tthis.c = PropertyFactory.getProp(elem,data.c,1,255,this);\r\n\tthis.style = styleOb;\r\n this._isAnimated = !!this._isAnimated;\r\n}\r\n\r\nextendPrototype([DynamicPropertyContainer], SVGStrokeStyleData);\nfunction SVGFillStyleData(elem, data, styleOb){\r\n\tthis.initDynamicPropertyContainer(elem);\r\n\tthis.getValue = this.iterateDynamicProperties;\r\n\tthis.o = PropertyFactory.getProp(elem,data.o,0,0.01,this);\r\n\tthis.c = PropertyFactory.getProp(elem,data.c,1,255,this);\r\n\tthis.style = styleOb;\r\n}\r\n\r\nextendPrototype([DynamicPropertyContainer], SVGFillStyleData);\nfunction SVGGradientFillStyleData(elem, data, styleOb){\r\n this.initDynamicPropertyContainer(elem);\r\n this.getValue = this.iterateDynamicProperties;\r\n this.initGradientData(elem, data, styleOb);\r\n}\r\n\r\nSVGGradientFillStyleData.prototype.initGradientData = function(elem, data, styleOb){\r\n this.o = PropertyFactory.getProp(elem,data.o,0,0.01,this);\r\n this.s = PropertyFactory.getProp(elem,data.s,1,null,this);\r\n this.e = PropertyFactory.getProp(elem,data.e,1,null,this);\r\n this.h = PropertyFactory.getProp(elem,data.h||{k:0},0,0.01,this);\r\n this.a = PropertyFactory.getProp(elem,data.a||{k:0},0,degToRads,this);\r\n this.g = new GradientProperty(elem,data.g,this);\r\n this.style = styleOb;\r\n this.stops = [];\r\n this.setGradientData(styleOb.pElem, data);\r\n this.setGradientOpacity(data, styleOb);\r\n this._isAnimated = !!this._isAnimated;\r\n\r\n};\r\n\r\nSVGGradientFillStyleData.prototype.setGradientData = function(pathElement,data){\r\n\r\n var gradientId = 'gr_'+randomString(10);\r\n var gfill = createNS(data.t === 1 ? 'linearGradient' : 'radialGradient');\r\n gfill.setAttribute('id',gradientId);\r\n gfill.setAttribute('spreadMethod','pad');\r\n gfill.setAttribute('gradientUnits','userSpaceOnUse');\r\n var stops = [];\r\n var stop, j, jLen;\r\n jLen = data.g.p*4;\r\n for(j=0;j 0) {\r\n\t redraw = itemData.transformers[k].mProps._mdf || redraw;\r\n\t iterations --;\r\n\t k --;\r\n\t }\r\n\t if(redraw) {\r\n\t iterations = lvl - itemData.styles[l].lvl;\r\n\t k = itemData.transformers.length-1;\r\n\t while(iterations > 0) {\r\n\t props = itemData.transformers[k].mProps.v.props;\r\n\t mat.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\r\n\t iterations --;\r\n\t k --;\r\n\t }\r\n\t }\r\n\t } else {\r\n\t mat = _identityMatrix;\r\n\t }\r\n\t paths = itemData.sh.paths;\r\n\t jLen = paths._length;\r\n\t if(redraw){\r\n\t pathStringTransformed = '';\r\n\t for(j=0;j= 1 ? 0.99 : itemData.h.v <= -1 ? -0.99: itemData.h.v;\r\n\t var dist = rad * percent;\r\n\t var x = Math.cos(ang + itemData.a.v) * dist + pt1[0];\r\n\t var y = Math.sin(ang + itemData.a.v) * dist + pt1[1];\r\n\t gfill.setAttribute('fx', x);\r\n\t gfill.setAttribute('fy', y);\r\n\t if (hasOpacity && !itemData.g._collapsable) {\r\n\t itemData.of.setAttribute('fx', x);\r\n\t itemData.of.setAttribute('fy', y);\r\n\t }\r\n\t }\r\n\t //gfill.setAttribute('fy','200');\r\n\t }\r\n\t};\r\n\r\n\tfunction renderStroke(styleData, itemData, isFirstFrame) {\r\n\t var styleElem = itemData.style;\r\n\t var d = itemData.d;\r\n\t if (d && (d._mdf || isFirstFrame) && d.dashStr) {\r\n\t styleElem.pElem.setAttribute('stroke-dasharray', d.dashStr);\r\n\t styleElem.pElem.setAttribute('stroke-dashoffset', d.dashoffset[0]);\r\n\t }\r\n\t if(itemData.c && (itemData.c._mdf || isFirstFrame)){\r\n\t styleElem.pElem.setAttribute('stroke','rgb(' + bm_floor(itemData.c.v[0]) + ',' + bm_floor(itemData.c.v[1]) + ',' + bm_floor(itemData.c.v[2]) + ')');\r\n\t }\r\n\t if(itemData.o._mdf || isFirstFrame){\r\n\t styleElem.pElem.setAttribute('stroke-opacity', itemData.o.v);\r\n\t }\r\n\t if(itemData.w._mdf || isFirstFrame){\r\n\t styleElem.pElem.setAttribute('stroke-width', itemData.w.v);\r\n\t if(styleElem.msElem){\r\n\t styleElem.msElem.setAttribute('stroke-width', itemData.w.v);\r\n\t }\r\n\t }\r\n\t};\r\n\r\n\treturn ob;\r\n}())\nfunction ShapeTransformManager() {\r\n\tthis.sequences = {};\r\n\tthis.sequenceList = [];\r\n this.transform_key_count = 0;\r\n}\r\n\r\nShapeTransformManager.prototype = {\r\n\taddTransformSequence: function(transforms) {\r\n\t\tvar i, len = transforms.length;\r\n\t\tvar key = '_';\r\n\t\tfor(i = 0; i < len; i += 1) {\r\n\t\t\tkey += transforms[i].transform.key + '_';\r\n\t\t}\r\n\t\tvar sequence = this.sequences[key];\r\n\t\tif(!sequence) {\r\n\t\t\tsequence = {\r\n\t\t\t\ttransforms: [].concat(transforms),\r\n\t\t\t\tfinalTransform: new Matrix(),\r\n\t\t\t\t_mdf: false\r\n\t\t\t};\r\n\t\t\tthis.sequences[key] = sequence;\r\n\t\t\tthis.sequenceList.push(sequence);\r\n\t\t}\r\n\t\treturn sequence;\r\n\t},\r\n\tprocessSequence: function(sequence, isFirstFrame) {\r\n\t\tvar i = 0, len = sequence.transforms.length, _mdf = isFirstFrame;\r\n\t\twhile (i < len && !isFirstFrame) {\r\n\t\t\tif (sequence.transforms[i].transform.mProps._mdf) {\r\n\t\t\t\t_mdf = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t\ti += 1\r\n\t\t}\r\n\t\tif (_mdf) {\r\n\t\t\tvar props;\r\n\t\t\tsequence.finalTransform.reset();\r\n\t\t\tfor (i = len - 1; i >= 0; i -= 1) {\r\n\t\t props = sequence.transforms[i].transform.mProps.v.props;\r\n\t\t sequence.finalTransform.transform(props[0],props[1],props[2],props[3],props[4],props[5],props[6],props[7],props[8],props[9],props[10],props[11],props[12],props[13],props[14],props[15]);\r\n\t\t\t}\r\n\t\t}\r\n\t\tsequence._mdf = _mdf;\r\n\t\t\r\n\t},\r\n\tprocessSequences: function(isFirstFrame) {\r\n\t\tvar i, len = this.sequenceList.length;\r\n\t\tfor (i = 0; i < len; i += 1) {\r\n\t\t\tthis.processSequence(this.sequenceList[i], isFirstFrame);\r\n\t\t}\r\n\r\n\t},\r\n\tgetNewKey: function() {\r\n\t\treturn '_' + this.transform_key_count++;\r\n\t}\r\n}\nfunction BaseElement(){\r\n}\r\n\r\nBaseElement.prototype = {\r\n checkMasks: function(){\r\n if(!this.data.hasMask){\r\n return false;\r\n }\r\n var i = 0, len = this.data.masksProperties.length;\r\n while(i=0;i-=1){\r\n this.shapeModifiers[i].processShapes(this._isFirstFrame);\r\n }\r\n },\r\n lcEnum: {\r\n '1': 'butt',\r\n '2': 'round',\r\n '3': 'square'\r\n },\r\n ljEnum: {\r\n '1': 'miter',\r\n '2': 'round',\r\n '3': 'bevel'\r\n },\r\n searchProcessedElement: function(elem){\r\n var elements = this.processedElements;\r\n var i = 0, len = elements.length;\r\n while(i < len){\r\n if(elements[i].elem === elem){\r\n return elements[i].pos;\r\n }\r\n i += 1;\r\n }\r\n return 0;\r\n },\r\n addProcessedElement: function(elem, pos){\r\n var elements = this.processedElements;\r\n var i = elements.length;\r\n while(i){\r\n i -= 1;\r\n if(elements[i].elem === elem){\r\n elements[i].pos = pos;\r\n return;\r\n }\r\n }\r\n elements.push(new ProcessedElement(elem, pos));\r\n },\r\n prepareFrame: function(num) {\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n }\r\n};\nfunction ITextElement(){\r\n}\r\n\r\nITextElement.prototype.initElement = function(data,globalData,comp){\r\n this.lettersChangedFlag = true;\r\n this.initFrame();\r\n this.initBaseData(data, globalData, comp);\r\n this.textProperty = new TextProperty(this, data.t, this.dynamicProperties);\r\n this.textAnimator = new TextAnimatorProperty(data.t, this.renderType, this);\r\n this.initTransform(data, globalData, comp);\r\n this.initHierarchy();\r\n this.initRenderable();\r\n this.initRendererElement();\r\n this.createContainerElements();\r\n this.createRenderableComponents();\r\n this.createContent();\r\n this.hide();\r\n this.textAnimator.searchProperties(this.dynamicProperties);\r\n};\r\n\r\nITextElement.prototype.prepareFrame = function(num) {\r\n this._mdf = false;\r\n this.prepareRenderableFrame(num);\r\n this.prepareProperties(num, this.isInRange);\r\n if(this.textProperty._mdf || this.textProperty._isFirstFrame) {\r\n this.buildNewText();\r\n this.textProperty._isFirstFrame = false;\r\n this.textProperty._mdf = false;\r\n }\r\n};\r\n\r\nITextElement.prototype.createPathShape = function(matrixHelper, shapes) {\r\n var j,jLen = shapes.length;\r\n var k, kLen, pathNodes;\r\n var shapeStr = '';\r\n for(j=0;j= 0; i -= 1 ){\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].prepareFrame(this.renderedFrame - this.layers[i].st);\r\n if(this.elements[i]._mdf) {\r\n this._mdf = true;\r\n }\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.renderInnerContent = function() {\r\n var i,len = this.layers.length;\r\n for( i = 0; i < len; i += 1 ){\r\n if(this.completeLayers || this.elements[i]){\r\n this.elements[i].renderFrame();\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.setElements = function(elems){\r\n this.elements = elems;\r\n};\r\n\r\nICompElement.prototype.getElements = function(){\r\n return this.elements;\r\n};\r\n\r\nICompElement.prototype.destroyElements = function(){\r\n var i,len = this.layers.length;\r\n for( i = 0; i < len; i+=1 ){\r\n if(this.elements[i]){\r\n this.elements[i].destroy();\r\n }\r\n }\r\n};\r\n\r\nICompElement.prototype.destroy = function(){\r\n this.destroyElements();\r\n this.destroyBaseElement();\r\n};\r\n\nfunction IImageElement(data,globalData,comp){\r\n this.assetData = globalData.getAssetData(data.refId);\r\n this.initElement(data,globalData,comp);\r\n}\r\n\r\nextendPrototype([BaseElement,TransformElement,SVGBaseElement,HierarchyElement,FrameElement,RenderableDOMElement], IImageElement);\r\n\r\nIImageElement.prototype.createContent = function(){\r\n\r\n var assetPath = this.globalData.getAssetsPath(this.assetData);\r\n\r\n this.innerElem = createNS('image');\r\n this.innerElem.setAttribute('width',this.assetData.w+\"px\");\r\n this.innerElem.setAttribute('height',this.assetData.h+\"px\");\r\n this.innerElem.setAttribute('preserveAspectRatio',this.assetData.pr || this.globalData.renderConfig.imagePreserveAspectRatio);\r\n this.innerElem.setAttributeNS('http://www.w3.org/1999/xlink','href',assetPath);\r\n \r\n this.layerElement.appendChild(this.innerElem);\r\n};\r\n\nfunction ISolidElement(data,globalData,comp){\r\n this.initElement(data,globalData,comp);\r\n}\r\nextendPrototype([IImageElement], ISolidElement);\r\n\r\nISolidElement.prototype.createContent = function(){\r\n\r\n var rect = createNS('rect');\r\n ////rect.style.width = this.data.sw;\r\n ////rect.style.height = this.data.sh;\r\n ////rect.style.fill = this.data.sc;\r\n rect.setAttribute('width',this.data.sw);\r\n rect.setAttribute('height',this.data.sh);\r\n rect.setAttribute('fill',this.data.sc);\r\n this.layerElement.appendChild(rect);\r\n};\nfunction SVGCompElement(data,globalData,comp){\r\n this.layers = data.layers;\r\n this.supports3d = true;\r\n this.completeLayers = false;\r\n this.pendingElements = [];\r\n this.elements = this.layers ? createSizedArray(this.layers.length) : [];\r\n //this.layerElement = createNS('g');\r\n this.initElement(data,globalData,comp);\r\n this.tm = data.tm ? PropertyFactory.getProp(this,data.tm,0,globalData.frameRate,this) : {_placeholder:true};\r\n}\r\n\r\nextendPrototype([SVGRenderer, ICompElement, SVGBaseElement], SVGCompElement);\nfunction SVGTextElement(data,globalData,comp){\r\n this.textSpans = [];\r\n this.renderType = 'svg';\r\n this.initElement(data,globalData,comp);\r\n}\r\n\r\nextendPrototype([BaseElement,TransformElement,SVGBaseElement,HierarchyElement,FrameElement,RenderableDOMElement,ITextElement], SVGTextElement);\r\n\r\nSVGTextElement.prototype.createContent = function(){\r\n\r\n if (this.data.singleShape && !this.globalData.fontManager.chars) {\r\n this.textContainer = createNS('text');\r\n }\r\n};\r\n\r\nSVGTextElement.prototype.buildTextContents = function(textArray) {\r\n var i = 0, len = textArray.length;\r\n var textContents = [], currentTextContent = '';\r\n while (i < len) {\r\n if(textArray[i] === String.fromCharCode(13) || textArray[i] === String.fromCharCode(3)) {\r\n textContents.push(currentTextContent);\r\n currentTextContent = '';\r\n } else {\r\n currentTextContent += textArray[i];\r\n }\r\n i += 1;\r\n }\r\n textContents.push(currentTextContent);\r\n return textContents;\r\n}\r\n\r\nSVGTextElement.prototype.buildNewText = function(){\r\n var i, len;\r\n\r\n var documentData = this.textProperty.currentData;\r\n this.renderedLetters = createSizedArray(documentData ? documentData.l.length : 0);\r\n if(documentData.fc) {\r\n this.layerElement.setAttribute('fill', this.buildColor(documentData.fc));\r\n }else{\r\n this.layerElement.setAttribute('fill', 'rgba(0,0,0,0)');\r\n }\r\n if(documentData.sc){\r\n this.layerElement.setAttribute('stroke', this.buildColor(documentData.sc));\r\n this.layerElement.setAttribute('stroke-width', documentData.sw);\r\n }\r\n this.layerElement.setAttribute('font-size', documentData.finalSize);\r\n var fontData = this.globalData.fontManager.getFontByName(documentData.f);\r\n if(fontData.fClass){\r\n this.layerElement.setAttribute('class',fontData.fClass);\r\n } else {\r\n this.layerElement.setAttribute('font-family', fontData.fFamily);\r\n var fWeight = documentData.fWeight, fStyle = documentData.fStyle;\r\n this.layerElement.setAttribute('font-style', fStyle);\r\n this.layerElement.setAttribute('font-weight', fWeight);\r\n }\r\n\r\n var letters = documentData.l || [];\r\n var usesGlyphs = !!this.globalData.fontManager.chars;\r\n len = letters.length;\r\n\r\n var tSpan;\r\n var matrixHelper = this.mHelper;\r\n var shapes, shapeStr = '', singleShape = this.data.singleShape;\r\n var xPos = 0, yPos = 0, firstLine = true;\r\n var trackingOffset = documentData.tr/1000*documentData.finalSize;\r\n if(singleShape && !usesGlyphs && !documentData.sz) {\r\n var tElement = this.textContainer;\r\n var justify = 'start';\r\n switch(documentData.j) {\r\n case 1:\r\n justify = 'end';\r\n break;\r\n case 2:\r\n justify = 'middle';\r\n break;\r\n }\r\n tElement.setAttribute('text-anchor',justify);\r\n tElement.setAttribute('letter-spacing',trackingOffset);\r\n var textContent = this.buildTextContents(documentData.finalText);\r\n len = textContent.length;\r\n yPos = documentData.ps ? documentData.ps[1] + documentData.ascent : 0;\r\n for ( i = 0; i < len; i += 1) {\r\n tSpan = this.textSpans[i] || createNS('tspan');\r\n tSpan.textContent = textContent[i];\r\n tSpan.setAttribute('x', 0);\r\n tSpan.setAttribute('y', yPos);\r\n tSpan.style.display = 'inherit';\r\n tElement.appendChild(tSpan);\r\n this.textSpans[i] = tSpan;\r\n yPos += documentData.finalLineHeight;\r\n }\r\n \r\n this.layerElement.appendChild(tElement);\r\n } else {\r\n var cachedSpansLength = this.textSpans.length;\r\n var shapeData, charData;\r\n for (i = 0; i < len; i += 1) {\r\n if(!usesGlyphs || !singleShape || i === 0){\r\n tSpan = cachedSpansLength > i ? this.textSpans[i] : createNS(usesGlyphs?'path':'text');\r\n if (cachedSpansLength <= i) {\r\n tSpan.setAttribute('stroke-linecap', 'butt');\r\n tSpan.setAttribute('stroke-linejoin','round');\r\n tSpan.setAttribute('stroke-miterlimit','4');\r\n this.textSpans[i] = tSpan;\r\n this.layerElement.appendChild(tSpan);\r\n }\r\n tSpan.style.display = 'inherit';\r\n }\r\n \r\n matrixHelper.reset();\r\n matrixHelper.scale(documentData.finalSize / 100, documentData.finalSize / 100);\r\n if (singleShape) {\r\n if(letters[i].n) {\r\n xPos = -trackingOffset;\r\n yPos += documentData.yOffset;\r\n yPos += firstLine ? 1 : 0;\r\n firstLine = false;\r\n }\r\n this.applyTextPropertiesToMatrix(documentData, matrixHelper, letters[i].line, xPos, yPos);\r\n xPos += letters[i].l || 0;\r\n //xPos += letters[i].val === ' ' ? 0 : trackingOffset;\r\n xPos += trackingOffset;\r\n }\r\n if(usesGlyphs) {\r\n charData = this.globalData.fontManager.getCharData(documentData.finalText[i], fontData.fStyle, this.globalData.fontManager.getFontByName(documentData.f).fFamily);\r\n shapeData = charData && charData.data || {};\r\n shapes = shapeData.shapes ? shapeData.shapes[0].it : [];\r\n if(!singleShape){\r\n tSpan.setAttribute('d',this.createPathShape(matrixHelper,shapes));\r\n } else {\r\n shapeStr += this.createPathShape(matrixHelper,shapes);\r\n }\r\n } else {\r\n if(singleShape) {\r\n tSpan.setAttribute(\"transform\", \"translate(\" + matrixHelper.props[12] + \",\" + matrixHelper.props[13] + \")\");\r\n }\r\n tSpan.textContent = letters[i].val;\r\n tSpan.setAttributeNS(\"http://www.w3.org/XML/1998/namespace\", \"xml:space\",\"preserve\");\r\n }\r\n //\r\n }\r\n if (singleShape && tSpan) {\r\n tSpan.setAttribute('d',shapeStr);\r\n }\r\n }\r\n while (i < this.textSpans.length){\r\n this.textSpans[i].style.display = 'none';\r\n i += 1;\r\n }\r\n \r\n this._sizeChanged = true;\r\n};\r\n\r\nSVGTextElement.prototype.sourceRectAtTime = function(time){\r\n this.prepareFrame(this.comp.renderedFrame - this.data.st);\r\n this.renderInnerContent();\r\n if(this._sizeChanged){\r\n this._sizeChanged = false;\r\n var textBox = this.layerElement.getBBox();\r\n this.bbox = {\r\n top: textBox.y,\r\n left: textBox.x,\r\n width: textBox.width,\r\n height: textBox.height\r\n };\r\n }\r\n return this.bbox;\r\n};\r\n\r\nSVGTextElement.prototype.renderInnerContent = function(){\r\n\r\n if(!this.data.singleShape){\r\n this.textAnimator.getMeasures(this.textProperty.currentData, this.lettersChangedFlag);\r\n if(this.lettersChangedFlag || this.textAnimator.lettersChangedFlag){\r\n this._sizeChanged = true;\r\n var i,len;\r\n var renderedLetters = this.textAnimator.renderedLetters;\r\n\r\n var letters = this.textProperty.currentData.l;\r\n\r\n len = letters.length;\r\n var renderedLetter, textSpan;\r\n for(i=0;i 1 && areAnimated) {\r\n this.setShapesAsAnimated(tempShapes);\r\n }\r\n }\r\n}\r\n\r\nSVGShapeElement.prototype.setShapesAsAnimated = function(shapes){\r\n var i, len = shapes.length;\r\n for(i = 0; i < len; i += 1) {\r\n shapes[i].setAsAnimated();\r\n }\r\n}\r\n\r\nSVGShapeElement.prototype.createStyleElement = function(data, level){\r\n //TODO: prevent drawing of hidden styles\r\n var elementData;\r\n var styleOb = new SVGStyleData(data, level);\r\n\r\n var pathElement = styleOb.pElem;\r\n if(data.ty === 'st') {\r\n elementData = new SVGStrokeStyleData(this, data, styleOb);\r\n } else if(data.ty === 'fl') {\r\n elementData = new SVGFillStyleData(this, data, styleOb);\r\n } else if(data.ty === 'gf' || data.ty === 'gs') {\r\n var gradientConstructor = data.ty === 'gf' ? SVGGradientFillStyleData : SVGGradientStrokeStyleData;\r\n elementData = new gradientConstructor(this, data, styleOb);\r\n this.globalData.defs.appendChild(elementData.gf);\r\n if (elementData.maskId) {\r\n this.globalData.defs.appendChild(elementData.ms);\r\n this.globalData.defs.appendChild(elementData.of);\r\n pathElement.setAttribute('mask','url(' + locationHref + '#' + elementData.maskId + ')');\r\n }\r\n }\r\n \r\n if(data.ty === 'st' || data.ty === 'gs') {\r\n pathElement.setAttribute('stroke-linecap', this.lcEnum[data.lc] || 'round');\r\n pathElement.setAttribute('stroke-linejoin',this.ljEnum[data.lj] || 'round');\r\n pathElement.setAttribute('fill-opacity','0');\r\n if(data.lj === 1) {\r\n pathElement.setAttribute('stroke-miterlimit',data.ml);\r\n }\r\n }\r\n\r\n if(data.r === 2) {\r\n pathElement.setAttribute('fill-rule', 'evenodd');\r\n }\r\n\r\n if(data.ln){\r\n pathElement.setAttribute('id',data.ln);\r\n }\r\n if(data.cl){\r\n pathElement.setAttribute('class',data.cl);\r\n }\r\n this.stylesList.push(styleOb);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createGroupElement = function(data) {\r\n var elementData = new ShapeGroupData();\r\n if(data.ln){\r\n elementData.gr.setAttribute('id',data.ln);\r\n }\r\n if(data.cl){\r\n elementData.gr.setAttribute('class',data.cl);\r\n }\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createTransformElement = function(data, container) {\r\n var transformProperty = TransformPropertyFactory.getTransformProperty(this,data,this);\r\n var elementData = new SVGTransformData(transformProperty, transformProperty.o, container);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.createShapeElement = function(data, ownTransformers, level) {\r\n var ty = 4;\r\n if(data.ty === 'rc'){\r\n ty = 5;\r\n }else if(data.ty === 'el'){\r\n ty = 6;\r\n }else if(data.ty === 'sr'){\r\n ty = 7;\r\n }\r\n var shapeProperty = ShapePropertyFactory.getShapeProp(this,data,ty,this);\r\n var elementData = new SVGShapeData(ownTransformers, level, shapeProperty);\r\n this.shapes.push(elementData);\r\n this.addShapeToModifiers(elementData);\r\n this.addToAnimatedContents(data, elementData);\r\n return elementData;\r\n};\r\n\r\nSVGShapeElement.prototype.addToAnimatedContents = function(data, element) {\r\n var i = 0, len = this.animatedContents.length;\r\n while(i < len) {\r\n if(this.animatedContents[i].element === element) {\r\n return;\r\n }\r\n i += 1;\r\n }\r\n this.animatedContents.push({\r\n fn: SVGElementsRenderer.createRenderFunction(data),\r\n element: element,\r\n data: data\r\n });\r\n};\r\n\r\nSVGShapeElement.prototype.setElementStyles = function(elementData){\r\n var arr = elementData.styles;\r\n var j, jLen = this.stylesList.length;\r\n for (j = 0; j < jLen; j += 1) {\r\n if (!this.stylesList[j].closed) {\r\n arr.push(this.stylesList[j]);\r\n }\r\n }\r\n};\r\n\r\nSVGShapeElement.prototype.reloadShapes = function(){\r\n this._isFirstFrame = true;\r\n var i, len = this.itemsData.length;\r\n for( i = 0; i < len; i += 1) {\r\n this.prevViewData[i] = this.itemsData[i];\r\n }\r\n this.searchShapes(this.shapesData,this.itemsData,this.prevViewData,this.layerElement, 0, [], true);\r\n this.filterUniqueShapes();\r\n len = this.dynamicProperties.length;\r\n for(i = 0; i < len; i += 1) {\r\n this.dynamicProperties[i].getValue();\r\n }\r\n this.renderModifiers();\r\n};\r\n\r\nSVGShapeElement.prototype.searchShapes = function(arr,itemsData,prevViewData,container, level, transformers, render){\r\n var ownTransformers = [].concat(transformers);\r\n var i, len = arr.length - 1;\r\n var j, jLen;\r\n var ownStyles = [], ownModifiers = [], styleOb, currentTransform, modifier, processedPos;\r\n for(i=len;i>=0;i-=1){\r\n processedPos = this.searchProcessedElement(arr[i]);\r\n if(!processedPos){\r\n arr[i]._render = render;\r\n } else {\r\n itemsData[i] = prevViewData[processedPos - 1];\r\n }\r\n if(arr[i].ty == 'fl' || arr[i].ty == 'st' || arr[i].ty == 'gf' || arr[i].ty == 'gs'){\r\n if(!processedPos){\r\n itemsData[i] = this.createStyleElement(arr[i], level);\r\n } else {\r\n itemsData[i].style.closed = false;\r\n }\r\n if(arr[i]._render){\r\n container.appendChild(itemsData[i].style.pElem);\r\n }\r\n ownStyles.push(itemsData[i].style);\r\n }else if(arr[i].ty == 'gr'){\r\n if(!processedPos){\r\n itemsData[i] = this.createGroupElement(arr[i]);\r\n } else {\r\n jLen = itemsData[i].it.length;\r\n for(j=0;j= max){\r\n colorValue = inputDelta < 0 ? outputBlack : outputWhite;\r\n } else {\r\n colorValue = (outputBlack + outputDelta * Math.pow((perc - inputBlack) / inputDelta, 1 / gamma));\r\n }\r\n table[pos++] = colorValue;\r\n cnt += 256/(segments-1);\r\n }\r\n return table.join(' ');\r\n};\r\n\r\nSVGProLevelsFilter.prototype.renderFrame = function(forceRender){\r\n if(forceRender || this.filterManager._mdf){\r\n var val, cnt, perc, bezier;\r\n var effectElements = this.filterManager.effectElements;\r\n if(this.feFuncRComposed && (forceRender || effectElements[3].p._mdf || effectElements[4].p._mdf || effectElements[5].p._mdf || effectElements[6].p._mdf || effectElements[7].p._mdf)){\r\n val = this.getTableValue(effectElements[3].p.v,effectElements[4].p.v,effectElements[5].p.v,effectElements[6].p.v,effectElements[7].p.v);\r\n this.feFuncRComposed.setAttribute('tableValues',val);\r\n this.feFuncGComposed.setAttribute('tableValues',val);\r\n this.feFuncBComposed.setAttribute('tableValues',val);\r\n }\r\n\r\n\r\n if(this.feFuncR && (forceRender || effectElements[10].p._mdf || effectElements[11].p._mdf || effectElements[12].p._mdf || effectElements[13].p._mdf || effectElements[14].p._mdf)){\r\n val = this.getTableValue(effectElements[10].p.v,effectElements[11].p.v,effectElements[12].p.v,effectElements[13].p.v,effectElements[14].p.v);\r\n this.feFuncR.setAttribute('tableValues',val);\r\n }\r\n\r\n if(this.feFuncG && (forceRender || effectElements[17].p._mdf || effectElements[18].p._mdf || effectElements[19].p._mdf || effectElements[20].p._mdf || effectElements[21].p._mdf)){\r\n val = this.getTableValue(effectElements[17].p.v,effectElements[18].p.v,effectElements[19].p.v,effectElements[20].p.v,effectElements[21].p.v);\r\n this.feFuncG.setAttribute('tableValues',val);\r\n }\r\n\r\n if(this.feFuncB && (forceRender || effectElements[24].p._mdf || effectElements[25].p._mdf || effectElements[26].p._mdf || effectElements[27].p._mdf || effectElements[28].p._mdf)){\r\n val = this.getTableValue(effectElements[24].p.v,effectElements[25].p.v,effectElements[26].p.v,effectElements[27].p.v,effectElements[28].p.v);\r\n this.feFuncB.setAttribute('tableValues',val);\r\n }\r\n\r\n if(this.feFuncA && (forceRender || effectElements[31].p._mdf || effectElements[32].p._mdf || effectElements[33].p._mdf || effectElements[34].p._mdf || effectElements[35].p._mdf)){\r\n val = this.getTableValue(effectElements[31].p.v,effectElements[32].p.v,effectElements[33].p.v,effectElements[34].p.v,effectElements[35].p.v);\r\n this.feFuncA.setAttribute('tableValues',val);\r\n }\r\n \r\n }\r\n};\nfunction SVGDropShadowEffect(filter, filterManager){\r\n filter.setAttribute('x','-100%');\r\n filter.setAttribute('y','-100%');\r\n filter.setAttribute('width','400%');\r\n filter.setAttribute('height','400%');\r\n this.filterManager = filterManager;\r\n\r\n var feGaussianBlur = createNS('feGaussianBlur');\r\n feGaussianBlur.setAttribute('in','SourceAlpha');\r\n feGaussianBlur.setAttribute('result','drop_shadow_1');\r\n feGaussianBlur.setAttribute('stdDeviation','0');\r\n this.feGaussianBlur = feGaussianBlur;\r\n filter.appendChild(feGaussianBlur);\r\n\r\n var feOffset = createNS('feOffset');\r\n feOffset.setAttribute('dx','25');\r\n feOffset.setAttribute('dy','0');\r\n feOffset.setAttribute('in','drop_shadow_1');\r\n feOffset.setAttribute('result','drop_shadow_2');\r\n this.feOffset = feOffset;\r\n filter.appendChild(feOffset);\r\n var feFlood = createNS('feFlood');\r\n feFlood.setAttribute('flood-color','#00ff00');\r\n feFlood.setAttribute('flood-opacity','1');\r\n feFlood.setAttribute('result','drop_shadow_3');\r\n this.feFlood = feFlood;\r\n filter.appendChild(feFlood);\r\n\r\n var feComposite = createNS('feComposite');\r\n feComposite.setAttribute('in','drop_shadow_3');\r\n feComposite.setAttribute('in2','drop_shadow_2');\r\n feComposite.setAttribute('operator','in');\r\n feComposite.setAttribute('result','drop_shadow_4');\r\n filter.appendChild(feComposite);\r\n\r\n\r\n var feMerge = createNS('feMerge');\r\n filter.appendChild(feMerge);\r\n var feMergeNode;\r\n feMergeNode = createNS('feMergeNode');\r\n feMerge.appendChild(feMergeNode);\r\n feMergeNode = createNS('feMergeNode');\r\n feMergeNode.setAttribute('in','SourceGraphic');\r\n this.feMergeNode = feMergeNode;\r\n this.feMerge = feMerge;\r\n this.originalNodeAdded = false;\r\n feMerge.appendChild(feMergeNode);\r\n}\r\n\r\nSVGDropShadowEffect.prototype.renderFrame = function(forceRender){\r\n if(forceRender || this.filterManager._mdf){\r\n if(forceRender || this.filterManager.effectElements[4].p._mdf){\r\n this.feGaussianBlur.setAttribute('stdDeviation', this.filterManager.effectElements[4].p.v / 4);\r\n }\r\n if(forceRender || this.filterManager.effectElements[0].p._mdf){\r\n var col = this.filterManager.effectElements[0].p.v;\r\n this.feFlood.setAttribute('flood-color',rgbToHex(Math.round(col[0]*255),Math.round(col[1]*255),Math.round(col[2]*255)));\r\n }\r\n if(forceRender || this.filterManager.effectElements[1].p._mdf){\r\n this.feFlood.setAttribute('flood-opacity',this.filterManager.effectElements[1].p.v/255);\r\n }\r\n if(forceRender || this.filterManager.effectElements[2].p._mdf || this.filterManager.effectElements[3].p._mdf){\r\n var distance = this.filterManager.effectElements[3].p.v;\r\n var angle = (this.filterManager.effectElements[2].p.v - 90) * degToRads;\r\n var x = distance * Math.cos(angle);\r\n var y = distance * Math.sin(angle);\r\n this.feOffset.setAttribute('dx', x);\r\n this.feOffset.setAttribute('dy', y);\r\n }\r\n /*if(forceRender || this.filterManager.effectElements[5].p._mdf){\r\n if(this.filterManager.effectElements[5].p.v === 1 && this.originalNodeAdded) {\r\n this.feMerge.removeChild(this.feMergeNode);\r\n this.originalNodeAdded = false;\r\n } else if(this.filterManager.effectElements[5].p.v === 0 && !this.originalNodeAdded) {\r\n this.feMerge.appendChild(this.feMergeNode);\r\n this.originalNodeAdded = true;\r\n }\r\n }*/\r\n }\r\n};\nvar _svgMatteSymbols = [];\r\nvar _svgMatteMaskCounter = 0;\r\n\r\nfunction SVGMatte3Effect(filterElem, filterManager, elem){\r\n this.initialized = false;\r\n this.filterManager = filterManager;\r\n this.filterElem = filterElem;\r\n this.elem = elem;\r\n elem.matteElement = createNS('g');\r\n elem.matteElement.appendChild(elem.layerElement);\r\n elem.matteElement.appendChild(elem.transformedElement);\r\n elem.baseElement = elem.matteElement;\r\n}\r\n\r\nSVGMatte3Effect.prototype.findSymbol = function(mask) {\r\n var i = 0, len = _svgMatteSymbols.length;\r\n while(i < len) {\r\n if(_svgMatteSymbols[i] === mask) {\r\n return _svgMatteSymbols[i];\r\n }\r\n i += 1;\r\n }\r\n return null;\r\n};\r\n\r\nSVGMatte3Effect.prototype.replaceInParent = function(mask, symbolId) {\r\n var parentNode = mask.layerElement.parentNode;\r\n if(!parentNode) {\r\n return;\r\n }\r\n var children = parentNode.children;\r\n var i = 0, len = children.length;\r\n while (i < len) {\r\n if (children[i] === mask.layerElement) {\r\n break;\r\n }\r\n i += 1;\r\n }\r\n var nextChild;\r\n if (i <= len - 2) {\r\n nextChild = children[i + 1];\r\n }\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n if(nextChild) {\r\n parentNode.insertBefore(useElem, nextChild);\r\n } else {\r\n parentNode.appendChild(useElem);\r\n }\r\n};\r\n\r\nSVGMatte3Effect.prototype.setElementAsMask = function(elem, mask) {\r\n if(!this.findSymbol(mask)) {\r\n var symbolId = 'matte_' + randomString(5) + '_' + _svgMatteMaskCounter++;\r\n var masker = createNS('mask');\r\n masker.setAttribute('id', mask.layerId);\r\n masker.setAttribute('mask-type', 'alpha');\r\n _svgMatteSymbols.push(mask);\r\n var defs = elem.globalData.defs;\r\n defs.appendChild(masker);\r\n var symbol = createNS('symbol');\r\n symbol.setAttribute('id', symbolId);\r\n this.replaceInParent(mask, symbolId);\r\n symbol.appendChild(mask.layerElement);\r\n defs.appendChild(symbol);\r\n var useElem = createNS('use');\r\n useElem.setAttribute('href', '#' + symbolId);\r\n masker.appendChild(useElem);\r\n mask.data.hd = false;\r\n mask.show();\r\n }\r\n elem.setMatte(mask.layerId);\r\n};\r\n\r\nSVGMatte3Effect.prototype.initialize = function() {\r\n var ind = this.filterManager.effectElements[0].p.v;\r\n var elements = this.elem.comp.elements;\r\n var i = 0, len = elements.length;\r\n while (i < len) {\r\n \tif (elements[i] && elements[i].data.ind === ind) {\r\n \t\tthis.setElementAsMask(this.elem, elements[i]);\r\n \t}\r\n \ti += 1;\r\n }\r\n this.initialized = true;\r\n};\r\n\r\nSVGMatte3Effect.prototype.renderFrame = function() {\r\n\tif(!this.initialized) {\r\n\t\tthis.initialize();\r\n\t}\r\n};\nfunction SVGEffects(elem){\r\n var i, len = elem.data.ef ? elem.data.ef.length : 0;\r\n var filId = randomString(10);\r\n var fil = filtersFactory.createFilter(filId);\r\n var count = 0;\r\n this.filters = [];\r\n var filterManager;\r\n for(i=0;i=0;i-=1){\r\n registeredAnimations[i].animation.destroy(animation);\r\n }\r\n }\r\n\r\n function searchAnimations(animationData, standalone, renderer){\r\n var animElements = [].concat([].slice.call(document.getElementsByClassName('lottie')),\r\n [].slice.call(document.getElementsByClassName('bodymovin')));\r\n var i, len = animElements.length;\r\n for(i=0;i this.animationData.op){\r\n this.animationData.op = data.op;\r\n this.totalFrames = Math.floor(data.op - this.animationData.ip);\r\n }\r\n var layers = this.animationData.layers;\r\n var i, len = layers.length;\r\n var newLayers = data.layers;\r\n var j, jLen = newLayers.length;\r\n for(j=0;j this.timeCompleted){\r\n this.currentFrame = this.timeCompleted;\r\n }\r\n this.trigger('enterFrame');\r\n this.renderFrame();\r\n};\r\n\r\nAnimationItem.prototype.renderFrame = function () {\r\n if(this.isLoaded === false){\r\n return;\r\n }\r\n this.renderer.renderFrame(this.currentFrame + this.firstFrame);\r\n};\r\n\r\nAnimationItem.prototype.play = function (name) {\r\n if(name && this.name != name){\r\n return;\r\n }\r\n if(this.isPaused === true){\r\n this.isPaused = false;\r\n if(this._idle){\r\n this._idle = false;\r\n this.trigger('_active');\r\n }\r\n }\r\n};\r\n\r\nAnimationItem.prototype.pause = function (name) {\r\n if(name && this.name != name){\r\n return;\r\n }\r\n if(this.isPaused === false){\r\n this.isPaused = true;\r\n this._idle = true;\r\n this.trigger('_idle');\r\n }\r\n};\r\n\r\nAnimationItem.prototype.togglePause = function (name) {\r\n if(name && this.name != name){\r\n return;\r\n }\r\n if(this.isPaused === true){\r\n this.play();\r\n }else{\r\n this.pause();\r\n }\r\n};\r\n\r\nAnimationItem.prototype.stop = function (name) {\r\n if(name && this.name != name){\r\n return;\r\n }\r\n this.pause();\r\n this.playCount = 0;\r\n this._completedLoop = false;\r\n this.setCurrentRawFrameValue(0);\r\n};\r\n\r\nAnimationItem.prototype.goToAndStop = function (value, isFrame, name) {\r\n if(name && this.name != name){\r\n return;\r\n }\r\n if(isFrame){\r\n this.setCurrentRawFrameValue(value);\r\n }else{\r\n this.setCurrentRawFrameValue(value * this.frameModifier);\r\n }\r\n this.pause();\r\n};\r\n\r\nAnimationItem.prototype.goToAndPlay = function (value, isFrame, name) {\r\n this.goToAndStop(value, isFrame, name);\r\n this.play();\r\n};\r\n\r\nAnimationItem.prototype.advanceTime = function (value) {\r\n if (this.isPaused === true || this.isLoaded === false) {\r\n return;\r\n }\r\n var nextValue = this.currentRawFrame + value * this.frameModifier;\r\n var _isComplete = false;\r\n // Checking if nextValue > totalFrames - 1 for addressing non looping and looping animations.\r\n // If animation won't loop, it should stop at totalFrames - 1. If it will loop it should complete the last frame and then loop.\r\n if (nextValue >= this.totalFrames - 1 && this.frameModifier > 0) {\r\n if (!this.loop || this.playCount === this.loop) {\r\n if (!this.checkSegments(nextValue > this.totalFrames ? nextValue % this.totalFrames : 0)) {\r\n _isComplete = true;\r\n nextValue = this.totalFrames - 1;\r\n }\r\n } else if (nextValue >= this.totalFrames) {\r\n this.playCount += 1;\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n this.setCurrentRawFrameValue(nextValue % this.totalFrames);\r\n this._completedLoop = true;\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n } else if(nextValue < 0) {\r\n if (!this.checkSegments(nextValue % this.totalFrames)) {\r\n if (this.loop && !(this.playCount-- <= 0 && this.loop !== true)) {\r\n this.setCurrentRawFrameValue(this.totalFrames + (nextValue % this.totalFrames));\r\n if(!this._completedLoop) {\r\n this._completedLoop = true;\r\n } else {\r\n this.trigger('loopComplete');\r\n }\r\n } else {\r\n _isComplete = true;\r\n nextValue = 0;\r\n }\r\n }\r\n } else {\r\n this.setCurrentRawFrameValue(nextValue);\r\n }\r\n if (_isComplete) {\r\n this.setCurrentRawFrameValue(nextValue);\r\n this.pause();\r\n this.trigger('complete');\r\n }\r\n};\r\n\r\nAnimationItem.prototype.adjustSegment = function(arr, offset){\r\n this.playCount = 0;\r\n if(arr[1] < arr[0]){\r\n if(this.frameModifier > 0){\r\n if(this.playSpeed < 0){\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(-1);\r\n }\r\n }\r\n this.timeCompleted = this.totalFrames = arr[0] - arr[1];\r\n this.firstFrame = arr[1];\r\n this.setCurrentRawFrameValue(this.totalFrames - 0.001 - offset);\r\n } else if(arr[1] > arr[0]){\r\n if(this.frameModifier < 0){\r\n if(this.playSpeed < 0){\r\n this.setSpeed(-this.playSpeed);\r\n } else {\r\n this.setDirection(1);\r\n }\r\n }\r\n this.timeCompleted = this.totalFrames = arr[1] - arr[0];\r\n this.firstFrame = arr[0];\r\n this.setCurrentRawFrameValue(0.001 + offset);\r\n }\r\n this.trigger('segmentStart');\r\n};\r\nAnimationItem.prototype.setSegment = function (init,end) {\r\n var pendingFrame = -1;\r\n if(this.isPaused) {\r\n if (this.currentRawFrame + this.firstFrame < init) {\r\n pendingFrame = init;\r\n } else if (this.currentRawFrame + this.firstFrame > end) {\r\n pendingFrame = end - init;\r\n }\r\n }\r\n\r\n this.firstFrame = init;\r\n this.timeCompleted = this.totalFrames = end - init;\r\n if(pendingFrame !== -1) {\r\n this.goToAndStop(pendingFrame,true);\r\n }\r\n};\r\n\r\nAnimationItem.prototype.playSegments = function (arr, forceFlag) {\r\n if (forceFlag) {\r\n this.segments.length = 0;\r\n }\r\n if (typeof arr[0] === 'object') {\r\n var i, len = arr.length;\r\n for (i = 0; i < len; i += 1) {\r\n this.segments.push(arr[i]);\r\n }\r\n } else {\r\n this.segments.push(arr);\r\n }\r\n if (this.segments.length) {\r\n this.adjustSegment(this.segments.shift(), 0);\r\n }\r\n if (this.isPaused) {\r\n this.play();\r\n }\r\n};\r\n\r\nAnimationItem.prototype.resetSegments = function (forceFlag) {\r\n this.segments.length = 0;\r\n this.segments.push([this.animationData.ip,this.animationData.op]);\r\n //this.segments.push([this.animationData.ip*this.frameRate,Math.floor(this.animationData.op - this.animationData.ip+this.animationData.ip*this.frameRate)]);\r\n if (forceFlag) {\r\n this.checkSegments(0);\r\n }\r\n};\r\nAnimationItem.prototype.checkSegments = function(offset) {\r\n if (this.segments.length) {\r\n this.adjustSegment(this.segments.shift(), offset);\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\nAnimationItem.prototype.destroy = function (name) {\r\n if ((name && this.name != name) || !this.renderer) {\r\n return;\r\n }\r\n this.renderer.destroy();\r\n this.imagePreloader.destroy();\r\n this.trigger('destroy');\r\n this._cbs = null;\r\n this.onEnterFrame = this.onLoopComplete = this.onComplete = this.onSegmentStart = this.onDestroy = null;\r\n this.renderer = null;\r\n};\r\n\r\nAnimationItem.prototype.setCurrentRawFrameValue = function(value){\r\n this.currentRawFrame = value;\r\n this.gotoFrame();\r\n};\r\n\r\nAnimationItem.prototype.setSpeed = function (val) {\r\n this.playSpeed = val;\r\n this.updaFrameModifier();\r\n};\r\n\r\nAnimationItem.prototype.setDirection = function (val) {\r\n this.playDirection = val < 0 ? -1 : 1;\r\n this.updaFrameModifier();\r\n};\r\n\r\nAnimationItem.prototype.updaFrameModifier = function () {\r\n this.frameModifier = this.frameMult * this.playSpeed * this.playDirection;\r\n};\r\n\r\nAnimationItem.prototype.getPath = function () {\r\n return this.path;\r\n};\r\n\r\nAnimationItem.prototype.getAssetsPath = function (assetData) {\r\n var path = '';\r\n if(assetData.e) {\r\n path = assetData.p;\r\n } else if(this.assetsPath){\r\n var imagePath = assetData.p;\r\n if(imagePath.indexOf('images/') !== -1){\r\n imagePath = imagePath.split('/')[1];\r\n }\r\n path = this.assetsPath + imagePath;\r\n } else {\r\n path = this.path;\r\n path += assetData.u ? assetData.u : '';\r\n path += assetData.p;\r\n }\r\n return path;\r\n};\r\n\r\nAnimationItem.prototype.getAssetData = function (id) {\r\n var i = 0, len = this.assets.length;\r\n while (i < len) {\r\n if(id == this.assets[i].id){\r\n return this.assets[i];\r\n }\r\n i += 1;\r\n }\r\n};\r\n\r\nAnimationItem.prototype.hide = function () {\r\n this.renderer.hide();\r\n};\r\n\r\nAnimationItem.prototype.show = function () {\r\n this.renderer.show();\r\n};\r\n\r\nAnimationItem.prototype.getDuration = function (isFrame) {\r\n return isFrame ? this.totalFrames : this.totalFrames / this.frameRate;\r\n};\r\n\r\nAnimationItem.prototype.trigger = function(name){\r\n if(this._cbs && this._cbs[name]){\r\n switch(name){\r\n case 'enterFrame':\r\n this.triggerEvent(name,new BMEnterFrameEvent(name,this.currentFrame,this.totalFrames,this.frameMult));\r\n break;\r\n case 'loopComplete':\r\n this.triggerEvent(name,new BMCompleteLoopEvent(name,this.loop,this.playCount,this.frameMult));\r\n break;\r\n case 'complete':\r\n this.triggerEvent(name,new BMCompleteEvent(name,this.frameMult));\r\n break;\r\n case 'segmentStart':\r\n this.triggerEvent(name,new BMSegmentStartEvent(name,this.firstFrame,this.totalFrames));\r\n break;\r\n case 'destroy':\r\n this.triggerEvent(name,new BMDestroyEvent(name,this));\r\n break;\r\n default:\r\n this.triggerEvent(name);\r\n }\r\n }\r\n if(name === 'enterFrame' && this.onEnterFrame){\r\n this.onEnterFrame.call(this,new BMEnterFrameEvent(name,this.currentFrame,this.totalFrames,this.frameMult));\r\n }\r\n if(name === 'loopComplete' && this.onLoopComplete){\r\n this.onLoopComplete.call(this,new BMCompleteLoopEvent(name,this.loop,this.playCount,this.frameMult));\r\n }\r\n if(name === 'complete' && this.onComplete){\r\n this.onComplete.call(this,new BMCompleteEvent(name,this.frameMult));\r\n }\r\n if(name === 'segmentStart' && this.onSegmentStart){\r\n this.onSegmentStart.call(this,new BMSegmentStartEvent(name,this.firstFrame,this.totalFrames));\r\n }\r\n if(name === 'destroy' && this.onDestroy){\r\n this.onDestroy.call(this,new BMDestroyEvent(name,this));\r\n }\r\n};\r\n\nfunction EffectsManager(){}\r\n var lottiejs = {};\r\n\r\n var _isFrozen = false;\r\n\r\n function setLocationHref (href) {\r\n locationHref = href;\r\n }\r\n\r\n function searchAnimations() {\r\n if (standalone === true) {\r\n animationManager.searchAnimations(animationData, standalone, renderer);\r\n } else {\r\n animationManager.searchAnimations();\r\n }\r\n }\r\n\r\n function setSubframeRendering(flag) {\r\n subframeEnabled = flag;\r\n }\r\n\r\n function loadAnimation(params) {\r\n if (standalone === true) {\r\n params.animationData = JSON.parse(animationData);\r\n }\r\n return animationManager.loadAnimation(params);\r\n }\r\n\r\n function setQuality(value) {\r\n if (typeof value === 'string') {\r\n switch (value) {\r\n case 'high':\r\n defaultCurveSegments = 200;\r\n break;\r\n case 'medium':\r\n defaultCurveSegments = 50;\r\n break;\r\n case 'low':\r\n defaultCurveSegments = 10;\r\n break;\r\n }\r\n } else if (!isNaN(value) && value > 1) {\r\n defaultCurveSegments = value;\r\n }\r\n if (defaultCurveSegments >= 50) {\r\n roundValues(false);\r\n } else {\r\n roundValues(true);\r\n }\r\n }\r\n\r\n function inBrowser() {\r\n return typeof navigator !== 'undefined';\r\n }\r\n\r\n function installPlugin(type, plugin) {\r\n if (type === 'expressions') {\r\n expressionsPlugin = plugin;\r\n }\r\n }\r\n\r\n function getFactory(name) {\r\n switch (name) {\r\n case \"propertyFactory\":\r\n return PropertyFactory;\r\n case \"shapePropertyFactory\":\r\n return ShapePropertyFactory;\r\n case \"matrix\":\r\n return Matrix;\r\n }\r\n }\r\n\r\n lottiejs.play = animationManager.play;\r\n lottiejs.pause = animationManager.pause;\r\n lottiejs.setLocationHref = setLocationHref;\r\n lottiejs.togglePause = animationManager.togglePause;\r\n lottiejs.setSpeed = animationManager.setSpeed;\r\n lottiejs.setDirection = animationManager.setDirection;\r\n lottiejs.stop = animationManager.stop;\r\n lottiejs.searchAnimations = searchAnimations;\r\n lottiejs.registerAnimation = animationManager.registerAnimation;\r\n lottiejs.loadAnimation = loadAnimation;\r\n lottiejs.setSubframeRendering = setSubframeRendering;\r\n lottiejs.resize = animationManager.resize;\r\n //lottiejs.start = start;\r\n lottiejs.goToAndStop = animationManager.goToAndStop;\r\n lottiejs.destroy = animationManager.destroy;\r\n lottiejs.setQuality = setQuality;\r\n lottiejs.inBrowser = inBrowser;\r\n lottiejs.installPlugin = installPlugin;\r\n lottiejs.freeze = animationManager.freeze;\r\n lottiejs.unfreeze = animationManager.unfreeze;\r\n lottiejs.getRegisteredAnimations = animationManager.getRegisteredAnimations;\r\n lottiejs.__getFactory = getFactory;\r\n lottiejs.version = '5.4.2';\r\n\r\n function checkReady() {\r\n if (document.readyState === \"complete\") {\r\n clearInterval(readyStateCheckInterval);\r\n searchAnimations();\r\n }\r\n }\r\n\r\n function getQueryVariable(variable) {\r\n var vars = queryString.split('&');\r\n for (var i = 0; i < vars.length; i++) {\r\n var pair = vars[i].split('=');\r\n if (decodeURIComponent(pair[0]) == variable) {\r\n return decodeURIComponent(pair[1]);\r\n }\r\n }\r\n }\r\n var standalone = '__[STANDALONE]__';\r\n var animationData = '__[ANIMATIONDATA]__';\r\n var renderer = '';\r\n if (standalone) {\r\n var scripts = document.getElementsByTagName('script');\r\n var index = scripts.length - 1;\r\n var myScript = scripts[index] || {\r\n src: ''\r\n };\r\n var queryString = myScript.src.replace(/^[^\\?]+\\??/, '');\r\n renderer = getQueryVariable('renderer');\r\n }\r\n var readyStateCheckInterval = setInterval(checkReady, 100);\r\n return lottiejs;\r\n}));\r","var map = {\n\t\"./breen.json\": 384,\n\t\"./kongsvinger.json\": 385,\n\t\"./lauvmakk.json\": 386,\n\t\"./lofoten.json\": 387,\n\t\"./odal.json\": 388,\n\t\"./oppland.json\": 389,\n\t\"./oslo.json\": 390,\n\t\"./palsmyr.json\": 391,\n\t\"./reineier.json\": 392,\n\t\"./slinde.json\": 393,\n\t\"./tilgamvik.json\": 394,\n\t\"./vega.json\": 395\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 383;","var VNode = function VNode() {};\n\nvar options = {};\n\nvar stack = [];\n\nvar EMPTY_CHILDREN = [];\n\nfunction h(nodeName, attributes) {\n\tvar children = EMPTY_CHILDREN,\n\t lastSimple,\n\t child,\n\t simple,\n\t i;\n\tfor (i = arguments.length; i-- > 2;) {\n\t\tstack.push(arguments[i]);\n\t}\n\tif (attributes && attributes.children != null) {\n\t\tif (!stack.length) stack.push(attributes.children);\n\t\tdelete attributes.children;\n\t}\n\twhile (stack.length) {\n\t\tif ((child = stack.pop()) && child.pop !== undefined) {\n\t\t\tfor (i = child.length; i--;) {\n\t\t\t\tstack.push(child[i]);\n\t\t\t}\n\t\t} else {\n\t\t\tif (typeof child === 'boolean') child = null;\n\n\t\t\tif (simple = typeof nodeName !== 'function') {\n\t\t\t\tif (child == null) child = '';else if (typeof child === 'number') child = String(child);else if (typeof child !== 'string') simple = false;\n\t\t\t}\n\n\t\t\tif (simple && lastSimple) {\n\t\t\t\tchildren[children.length - 1] += child;\n\t\t\t} else if (children === EMPTY_CHILDREN) {\n\t\t\t\tchildren = [child];\n\t\t\t} else {\n\t\t\t\tchildren.push(child);\n\t\t\t}\n\n\t\t\tlastSimple = simple;\n\t\t}\n\t}\n\n\tvar p = new VNode();\n\tp.nodeName = nodeName;\n\tp.children = children;\n\tp.attributes = attributes == null ? undefined : attributes;\n\tp.key = attributes == null ? undefined : attributes.key;\n\n\tif (options.vnode !== undefined) options.vnode(p);\n\n\treturn p;\n}\n\nfunction extend(obj, props) {\n for (var i in props) {\n obj[i] = props[i];\n }return obj;\n}\n\nvar defer = typeof Promise == 'function' ? Promise.resolve().then.bind(Promise.resolve()) : setTimeout;\n\nfunction cloneElement(vnode, props) {\n return h(vnode.nodeName, extend(extend({}, vnode.attributes), props), arguments.length > 2 ? [].slice.call(arguments, 2) : vnode.children);\n}\n\nvar IS_NON_DIMENSIONAL = /acit|ex(?:s|g|n|p|$)|rph|ows|mnc|ntw|ine[ch]|zoo|^ord/i;\n\nvar items = [];\n\nfunction enqueueRender(component) {\n\tif (!component._dirty && (component._dirty = true) && items.push(component) == 1) {\n\t\t(options.debounceRendering || defer)(rerender);\n\t}\n}\n\nfunction rerender() {\n\tvar p,\n\t list = items;\n\titems = [];\n\twhile (p = list.pop()) {\n\t\tif (p._dirty) renderComponent(p);\n\t}\n}\n\nfunction isSameNodeType(node, vnode, hydrating) {\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\t\treturn node.splitText !== undefined;\n\t}\n\tif (typeof vnode.nodeName === 'string') {\n\t\treturn !node._componentConstructor && isNamedNode(node, vnode.nodeName);\n\t}\n\treturn hydrating || node._componentConstructor === vnode.nodeName;\n}\n\nfunction isNamedNode(node, nodeName) {\n\treturn node.normalizedNodeName === nodeName || node.nodeName.toLowerCase() === nodeName.toLowerCase();\n}\n\nfunction getNodeProps(vnode) {\n\tvar props = extend({}, vnode.attributes);\n\tprops.children = vnode.children;\n\n\tvar defaultProps = vnode.nodeName.defaultProps;\n\tif (defaultProps !== undefined) {\n\t\tfor (var i in defaultProps) {\n\t\t\tif (props[i] === undefined) {\n\t\t\t\tprops[i] = defaultProps[i];\n\t\t\t}\n\t\t}\n\t}\n\n\treturn props;\n}\n\nfunction createNode(nodeName, isSvg) {\n\tvar node = isSvg ? document.createElementNS('http://www.w3.org/2000/svg', nodeName) : document.createElement(nodeName);\n\tnode.normalizedNodeName = nodeName;\n\treturn node;\n}\n\nfunction removeNode(node) {\n\tvar parentNode = node.parentNode;\n\tif (parentNode) parentNode.removeChild(node);\n}\n\nfunction setAccessor(node, name, old, value, isSvg) {\n\tif (name === 'className') name = 'class';\n\n\tif (name === 'key') {} else if (name === 'ref') {\n\t\tif (old) old(null);\n\t\tif (value) value(node);\n\t} else if (name === 'class' && !isSvg) {\n\t\tnode.className = value || '';\n\t} else if (name === 'style') {\n\t\tif (!value || typeof value === 'string' || typeof old === 'string') {\n\t\t\tnode.style.cssText = value || '';\n\t\t}\n\t\tif (value && typeof value === 'object') {\n\t\t\tif (typeof old !== 'string') {\n\t\t\t\tfor (var i in old) {\n\t\t\t\t\tif (!(i in value)) node.style[i] = '';\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (var i in value) {\n\t\t\t\tnode.style[i] = typeof value[i] === 'number' && IS_NON_DIMENSIONAL.test(i) === false ? value[i] + 'px' : value[i];\n\t\t\t}\n\t\t}\n\t} else if (name === 'dangerouslySetInnerHTML') {\n\t\tif (value) node.innerHTML = value.__html || '';\n\t} else if (name[0] == 'o' && name[1] == 'n') {\n\t\tvar useCapture = name !== (name = name.replace(/Capture$/, ''));\n\t\tname = name.toLowerCase().substring(2);\n\t\tif (value) {\n\t\t\tif (!old) node.addEventListener(name, eventProxy, useCapture);\n\t\t} else {\n\t\t\tnode.removeEventListener(name, eventProxy, useCapture);\n\t\t}\n\t\t(node._listeners || (node._listeners = {}))[name] = value;\n\t} else if (name !== 'list' && name !== 'type' && !isSvg && name in node) {\n\t\ttry {\n\t\t\tnode[name] = value == null ? '' : value;\n\t\t} catch (e) {}\n\t\tif ((value == null || value === false) && name != 'spellcheck') node.removeAttribute(name);\n\t} else {\n\t\tvar ns = isSvg && name !== (name = name.replace(/^xlink:?/, ''));\n\n\t\tif (value == null || value === false) {\n\t\t\tif (ns) node.removeAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase());else node.removeAttribute(name);\n\t\t} else if (typeof value !== 'function') {\n\t\t\tif (ns) node.setAttributeNS('http://www.w3.org/1999/xlink', name.toLowerCase(), value);else node.setAttribute(name, value);\n\t\t}\n\t}\n}\n\nfunction eventProxy(e) {\n\treturn this._listeners[e.type](options.event && options.event(e) || e);\n}\n\nvar mounts = [];\n\nvar diffLevel = 0;\n\nvar isSvgMode = false;\n\nvar hydrating = false;\n\nfunction flushMounts() {\n\tvar c;\n\twhile (c = mounts.pop()) {\n\t\tif (options.afterMount) options.afterMount(c);\n\t\tif (c.componentDidMount) c.componentDidMount();\n\t}\n}\n\nfunction diff(dom, vnode, context, mountAll, parent, componentRoot) {\n\tif (!diffLevel++) {\n\t\tisSvgMode = parent != null && parent.ownerSVGElement !== undefined;\n\n\t\thydrating = dom != null && !('__preactattr_' in dom);\n\t}\n\n\tvar ret = idiff(dom, vnode, context, mountAll, componentRoot);\n\n\tif (parent && ret.parentNode !== parent) parent.appendChild(ret);\n\n\tif (! --diffLevel) {\n\t\thydrating = false;\n\n\t\tif (!componentRoot) flushMounts();\n\t}\n\n\treturn ret;\n}\n\nfunction idiff(dom, vnode, context, mountAll, componentRoot) {\n\tvar out = dom,\n\t prevSvgMode = isSvgMode;\n\n\tif (vnode == null || typeof vnode === 'boolean') vnode = '';\n\n\tif (typeof vnode === 'string' || typeof vnode === 'number') {\n\t\tif (dom && dom.splitText !== undefined && dom.parentNode && (!dom._component || componentRoot)) {\n\t\t\tif (dom.nodeValue != vnode) {\n\t\t\t\tdom.nodeValue = vnode;\n\t\t\t}\n\t\t} else {\n\t\t\tout = document.createTextNode(vnode);\n\t\t\tif (dom) {\n\t\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\t\t\t\trecollectNodeTree(dom, true);\n\t\t\t}\n\t\t}\n\n\t\tout['__preactattr_'] = true;\n\n\t\treturn out;\n\t}\n\n\tvar vnodeName = vnode.nodeName;\n\tif (typeof vnodeName === 'function') {\n\t\treturn buildComponentFromVNode(dom, vnode, context, mountAll);\n\t}\n\n\tisSvgMode = vnodeName === 'svg' ? true : vnodeName === 'foreignObject' ? false : isSvgMode;\n\n\tvnodeName = String(vnodeName);\n\tif (!dom || !isNamedNode(dom, vnodeName)) {\n\t\tout = createNode(vnodeName, isSvgMode);\n\n\t\tif (dom) {\n\t\t\twhile (dom.firstChild) {\n\t\t\t\tout.appendChild(dom.firstChild);\n\t\t\t}\n\t\t\tif (dom.parentNode) dom.parentNode.replaceChild(out, dom);\n\n\t\t\trecollectNodeTree(dom, true);\n\t\t}\n\t}\n\n\tvar fc = out.firstChild,\n\t props = out['__preactattr_'],\n\t vchildren = vnode.children;\n\n\tif (props == null) {\n\t\tprops = out['__preactattr_'] = {};\n\t\tfor (var a = out.attributes, i = a.length; i--;) {\n\t\t\tprops[a[i].name] = a[i].value;\n\t\t}\n\t}\n\n\tif (!hydrating && vchildren && vchildren.length === 1 && typeof vchildren[0] === 'string' && fc != null && fc.splitText !== undefined && fc.nextSibling == null) {\n\t\tif (fc.nodeValue != vchildren[0]) {\n\t\t\tfc.nodeValue = vchildren[0];\n\t\t}\n\t} else if (vchildren && vchildren.length || fc != null) {\n\t\t\tinnerDiffNode(out, vchildren, context, mountAll, hydrating || props.dangerouslySetInnerHTML != null);\n\t\t}\n\n\tdiffAttributes(out, vnode.attributes, props);\n\n\tisSvgMode = prevSvgMode;\n\n\treturn out;\n}\n\nfunction innerDiffNode(dom, vchildren, context, mountAll, isHydrating) {\n\tvar originalChildren = dom.childNodes,\n\t children = [],\n\t keyed = {},\n\t keyedLen = 0,\n\t min = 0,\n\t len = originalChildren.length,\n\t childrenLen = 0,\n\t vlen = vchildren ? vchildren.length : 0,\n\t j,\n\t c,\n\t f,\n\t vchild,\n\t child;\n\n\tif (len !== 0) {\n\t\tfor (var i = 0; i < len; i++) {\n\t\t\tvar _child = originalChildren[i],\n\t\t\t props = _child['__preactattr_'],\n\t\t\t key = vlen && props ? _child._component ? _child._component.__key : props.key : null;\n\t\t\tif (key != null) {\n\t\t\t\tkeyedLen++;\n\t\t\t\tkeyed[key] = _child;\n\t\t\t} else if (props || (_child.splitText !== undefined ? isHydrating ? _child.nodeValue.trim() : true : isHydrating)) {\n\t\t\t\tchildren[childrenLen++] = _child;\n\t\t\t}\n\t\t}\n\t}\n\n\tif (vlen !== 0) {\n\t\tfor (var i = 0; i < vlen; i++) {\n\t\t\tvchild = vchildren[i];\n\t\t\tchild = null;\n\n\t\t\tvar key = vchild.key;\n\t\t\tif (key != null) {\n\t\t\t\tif (keyedLen && keyed[key] !== undefined) {\n\t\t\t\t\tchild = keyed[key];\n\t\t\t\t\tkeyed[key] = undefined;\n\t\t\t\t\tkeyedLen--;\n\t\t\t\t}\n\t\t\t} else if (min < childrenLen) {\n\t\t\t\t\tfor (j = min; j < childrenLen; j++) {\n\t\t\t\t\t\tif (children[j] !== undefined && isSameNodeType(c = children[j], vchild, isHydrating)) {\n\t\t\t\t\t\t\tchild = c;\n\t\t\t\t\t\t\tchildren[j] = undefined;\n\t\t\t\t\t\t\tif (j === childrenLen - 1) childrenLen--;\n\t\t\t\t\t\t\tif (j === min) min++;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\tchild = idiff(child, vchild, context, mountAll);\n\n\t\t\tf = originalChildren[i];\n\t\t\tif (child && child !== dom && child !== f) {\n\t\t\t\tif (f == null) {\n\t\t\t\t\tdom.appendChild(child);\n\t\t\t\t} else if (child === f.nextSibling) {\n\t\t\t\t\tremoveNode(f);\n\t\t\t\t} else {\n\t\t\t\t\tdom.insertBefore(child, f);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tif (keyedLen) {\n\t\tfor (var i in keyed) {\n\t\t\tif (keyed[i] !== undefined) recollectNodeTree(keyed[i], false);\n\t\t}\n\t}\n\n\twhile (min <= childrenLen) {\n\t\tif ((child = children[childrenLen--]) !== undefined) recollectNodeTree(child, false);\n\t}\n}\n\nfunction recollectNodeTree(node, unmountOnly) {\n\tvar component = node._component;\n\tif (component) {\n\t\tunmountComponent(component);\n\t} else {\n\t\tif (node['__preactattr_'] != null && node['__preactattr_'].ref) node['__preactattr_'].ref(null);\n\n\t\tif (unmountOnly === false || node['__preactattr_'] == null) {\n\t\t\tremoveNode(node);\n\t\t}\n\n\t\tremoveChildren(node);\n\t}\n}\n\nfunction removeChildren(node) {\n\tnode = node.lastChild;\n\twhile (node) {\n\t\tvar next = node.previousSibling;\n\t\trecollectNodeTree(node, true);\n\t\tnode = next;\n\t}\n}\n\nfunction diffAttributes(dom, attrs, old) {\n\tvar name;\n\n\tfor (name in old) {\n\t\tif (!(attrs && attrs[name] != null) && old[name] != null) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = undefined, isSvgMode);\n\t\t}\n\t}\n\n\tfor (name in attrs) {\n\t\tif (name !== 'children' && name !== 'innerHTML' && (!(name in old) || attrs[name] !== (name === 'value' || name === 'checked' ? dom[name] : old[name]))) {\n\t\t\tsetAccessor(dom, name, old[name], old[name] = attrs[name], isSvgMode);\n\t\t}\n\t}\n}\n\nvar recyclerComponents = [];\n\nfunction createComponent(Ctor, props, context) {\n\tvar inst,\n\t i = recyclerComponents.length;\n\n\tif (Ctor.prototype && Ctor.prototype.render) {\n\t\tinst = new Ctor(props, context);\n\t\tComponent.call(inst, props, context);\n\t} else {\n\t\tinst = new Component(props, context);\n\t\tinst.constructor = Ctor;\n\t\tinst.render = doRender;\n\t}\n\n\twhile (i--) {\n\t\tif (recyclerComponents[i].constructor === Ctor) {\n\t\t\tinst.nextBase = recyclerComponents[i].nextBase;\n\t\t\trecyclerComponents.splice(i, 1);\n\t\t\treturn inst;\n\t\t}\n\t}\n\n\treturn inst;\n}\n\nfunction doRender(props, state, context) {\n\treturn this.constructor(props, context);\n}\n\nfunction setComponentProps(component, props, renderMode, context, mountAll) {\n\tif (component._disable) return;\n\tcomponent._disable = true;\n\n\tcomponent.__ref = props.ref;\n\tcomponent.__key = props.key;\n\tdelete props.ref;\n\tdelete props.key;\n\n\tif (typeof component.constructor.getDerivedStateFromProps === 'undefined') {\n\t\tif (!component.base || mountAll) {\n\t\t\tif (component.componentWillMount) component.componentWillMount();\n\t\t} else if (component.componentWillReceiveProps) {\n\t\t\tcomponent.componentWillReceiveProps(props, context);\n\t\t}\n\t}\n\n\tif (context && context !== component.context) {\n\t\tif (!component.prevContext) component.prevContext = component.context;\n\t\tcomponent.context = context;\n\t}\n\n\tif (!component.prevProps) component.prevProps = component.props;\n\tcomponent.props = props;\n\n\tcomponent._disable = false;\n\n\tif (renderMode !== 0) {\n\t\tif (renderMode === 1 || options.syncComponentUpdates !== false || !component.base) {\n\t\t\trenderComponent(component, 1, mountAll);\n\t\t} else {\n\t\t\tenqueueRender(component);\n\t\t}\n\t}\n\n\tif (component.__ref) component.__ref(component);\n}\n\nfunction renderComponent(component, renderMode, mountAll, isChild) {\n\tif (component._disable) return;\n\n\tvar props = component.props,\n\t state = component.state,\n\t context = component.context,\n\t previousProps = component.prevProps || props,\n\t previousState = component.prevState || state,\n\t previousContext = component.prevContext || context,\n\t isUpdate = component.base,\n\t nextBase = component.nextBase,\n\t initialBase = isUpdate || nextBase,\n\t initialChildComponent = component._component,\n\t skip = false,\n\t snapshot = previousContext,\n\t rendered,\n\t inst,\n\t cbase;\n\n\tif (component.constructor.getDerivedStateFromProps) {\n\t\tstate = extend(extend({}, state), component.constructor.getDerivedStateFromProps(props, state));\n\t\tcomponent.state = state;\n\t}\n\n\tif (isUpdate) {\n\t\tcomponent.props = previousProps;\n\t\tcomponent.state = previousState;\n\t\tcomponent.context = previousContext;\n\t\tif (renderMode !== 2 && component.shouldComponentUpdate && component.shouldComponentUpdate(props, state, context) === false) {\n\t\t\tskip = true;\n\t\t} else if (component.componentWillUpdate) {\n\t\t\tcomponent.componentWillUpdate(props, state, context);\n\t\t}\n\t\tcomponent.props = props;\n\t\tcomponent.state = state;\n\t\tcomponent.context = context;\n\t}\n\n\tcomponent.prevProps = component.prevState = component.prevContext = component.nextBase = null;\n\tcomponent._dirty = false;\n\n\tif (!skip) {\n\t\trendered = component.render(props, state, context);\n\n\t\tif (component.getChildContext) {\n\t\t\tcontext = extend(extend({}, context), component.getChildContext());\n\t\t}\n\n\t\tif (isUpdate && component.getSnapshotBeforeUpdate) {\n\t\t\tsnapshot = component.getSnapshotBeforeUpdate(previousProps, previousState);\n\t\t}\n\n\t\tvar childComponent = rendered && rendered.nodeName,\n\t\t toUnmount,\n\t\t base;\n\n\t\tif (typeof childComponent === 'function') {\n\n\t\t\tvar childProps = getNodeProps(rendered);\n\t\t\tinst = initialChildComponent;\n\n\t\t\tif (inst && inst.constructor === childComponent && childProps.key == inst.__key) {\n\t\t\t\tsetComponentProps(inst, childProps, 1, context, false);\n\t\t\t} else {\n\t\t\t\ttoUnmount = inst;\n\n\t\t\t\tcomponent._component = inst = createComponent(childComponent, childProps, context);\n\t\t\t\tinst.nextBase = inst.nextBase || nextBase;\n\t\t\t\tinst._parentComponent = component;\n\t\t\t\tsetComponentProps(inst, childProps, 0, context, false);\n\t\t\t\trenderComponent(inst, 1, mountAll, true);\n\t\t\t}\n\n\t\t\tbase = inst.base;\n\t\t} else {\n\t\t\tcbase = initialBase;\n\n\t\t\ttoUnmount = initialChildComponent;\n\t\t\tif (toUnmount) {\n\t\t\t\tcbase = component._component = null;\n\t\t\t}\n\n\t\t\tif (initialBase || renderMode === 1) {\n\t\t\t\tif (cbase) cbase._component = null;\n\t\t\t\tbase = diff(cbase, rendered, context, mountAll || !isUpdate, initialBase && initialBase.parentNode, true);\n\t\t\t}\n\t\t}\n\n\t\tif (initialBase && base !== initialBase && inst !== initialChildComponent) {\n\t\t\tvar baseParent = initialBase.parentNode;\n\t\t\tif (baseParent && base !== baseParent) {\n\t\t\t\tbaseParent.replaceChild(base, initialBase);\n\n\t\t\t\tif (!toUnmount) {\n\t\t\t\t\tinitialBase._component = null;\n\t\t\t\t\trecollectNodeTree(initialBase, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (toUnmount) {\n\t\t\tunmountComponent(toUnmount);\n\t\t}\n\n\t\tcomponent.base = base;\n\t\tif (base && !isChild) {\n\t\t\tvar componentRef = component,\n\t\t\t t = component;\n\t\t\twhile (t = t._parentComponent) {\n\t\t\t\t(componentRef = t).base = base;\n\t\t\t}\n\t\t\tbase._component = componentRef;\n\t\t\tbase._componentConstructor = componentRef.constructor;\n\t\t}\n\t}\n\n\tif (!isUpdate || mountAll) {\n\t\tmounts.unshift(component);\n\t} else if (!skip) {\n\n\t\tif (component.componentDidUpdate) {\n\t\t\tcomponent.componentDidUpdate(previousProps, previousState, snapshot);\n\t\t}\n\t\tif (options.afterUpdate) options.afterUpdate(component);\n\t}\n\n\twhile (component._renderCallbacks.length) {\n\t\tcomponent._renderCallbacks.pop().call(component);\n\t}if (!diffLevel && !isChild) flushMounts();\n}\n\nfunction buildComponentFromVNode(dom, vnode, context, mountAll) {\n\tvar c = dom && dom._component,\n\t originalComponent = c,\n\t oldDom = dom,\n\t isDirectOwner = c && dom._componentConstructor === vnode.nodeName,\n\t isOwner = isDirectOwner,\n\t props = getNodeProps(vnode);\n\twhile (c && !isOwner && (c = c._parentComponent)) {\n\t\tisOwner = c.constructor === vnode.nodeName;\n\t}\n\n\tif (c && isOwner && (!mountAll || c._component)) {\n\t\tsetComponentProps(c, props, 3, context, mountAll);\n\t\tdom = c.base;\n\t} else {\n\t\tif (originalComponent && !isDirectOwner) {\n\t\t\tunmountComponent(originalComponent);\n\t\t\tdom = oldDom = null;\n\t\t}\n\n\t\tc = createComponent(vnode.nodeName, props, context);\n\t\tif (dom && !c.nextBase) {\n\t\t\tc.nextBase = dom;\n\n\t\t\toldDom = null;\n\t\t}\n\t\tsetComponentProps(c, props, 1, context, mountAll);\n\t\tdom = c.base;\n\n\t\tif (oldDom && dom !== oldDom) {\n\t\t\toldDom._component = null;\n\t\t\trecollectNodeTree(oldDom, false);\n\t\t}\n\t}\n\n\treturn dom;\n}\n\nfunction unmountComponent(component) {\n\tif (options.beforeUnmount) options.beforeUnmount(component);\n\n\tvar base = component.base;\n\n\tcomponent._disable = true;\n\n\tif (component.componentWillUnmount) component.componentWillUnmount();\n\n\tcomponent.base = null;\n\n\tvar inner = component._component;\n\tif (inner) {\n\t\tunmountComponent(inner);\n\t} else if (base) {\n\t\tif (base['__preactattr_'] && base['__preactattr_'].ref) base['__preactattr_'].ref(null);\n\n\t\tcomponent.nextBase = base;\n\n\t\tremoveNode(base);\n\t\trecyclerComponents.push(component);\n\n\t\tremoveChildren(base);\n\t}\n\n\tif (component.__ref) component.__ref(null);\n}\n\nfunction Component(props, context) {\n\tthis._dirty = true;\n\n\tthis.context = context;\n\n\tthis.props = props;\n\n\tthis.state = this.state || {};\n\n\tthis._renderCallbacks = [];\n}\n\nextend(Component.prototype, {\n\tsetState: function setState(state, callback) {\n\t\tif (!this.prevState) this.prevState = this.state;\n\t\tthis.state = extend(extend({}, this.state), typeof state === 'function' ? state(this.state, this.props) : state);\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\tenqueueRender(this);\n\t},\n\tforceUpdate: function forceUpdate(callback) {\n\t\tif (callback) this._renderCallbacks.push(callback);\n\t\trenderComponent(this, 2);\n\t},\n\trender: function render() {}\n});\n\nfunction render(vnode, parent, merge) {\n return diff(merge, vnode, {}, false, parent, false);\n}\n\nvar preact = {\n\th: h,\n\tcreateElement: h,\n\tcloneElement: cloneElement,\n\tComponent: Component,\n\trender: render,\n\trerender: rerender,\n\toptions: options\n};\n\nexport default preact;\nexport { h, h as createElement, cloneElement, Component, render, rerender, options };\n//# sourceMappingURL=preact.mjs.map\n","export function toArray(nodeList) {\n return [].slice.call(nodeList);\n}","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction toStrings(object) {\n return Object.keys(object).filter(function (key) {\n return object[key];\n });\n}\n\nexport default (function (blockName) {\n for (var _len = arguments.length, modifiers = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n modifiers[_key - 1] = arguments[_key];\n }\n\n var strings = modifiers.filter(function (modifier) {\n return typeof modifier === 'string';\n });\n var objects = modifiers.filter(function (modifier) {\n return typeof modifier === 'object';\n });\n\n var objectString = objects.map(function (object) {\n return toStrings(object);\n }).reduce(function (a, b) {\n return [].concat(_toConsumableArray(a), _toConsumableArray(b));\n }, []);\n\n return [blockName].concat(strings.map(function (modifier) {\n return blockName + '--' + modifier;\n })).concat(objectString.map(function (modifier) {\n return blockName + '--' + modifier;\n })).join(' ');\n});","const POLOPOLY_ID_REGEX = /[1-9]{1,2}\\.\\d+/g\n\nexport function getContextId(url: string) {\n return extractPolopolyIdFromString(url)\n}\n\nfunction extractPolopolyIdFromString(str: string) {\n const matches = str.match(POLOPOLY_ID_REGEX)\n if (matches && matches.length) {\n return matches[0]\n }\n return null\n}\n","import * as preact from 'preact'\nconst { h, Component } = preact\n\ninterface Props {\n sendGaEvent: (eventObj: {}) => void\n sendError: (message: string) => void\n children: Array\n}\n\nclass Provider extends Component {\n getChildContext () {\n const { children, ...props } = this.props\n return { '__CTX__': props }\n }\n render () {\n if (this.props.children && this.props.children[0]) {\n return this.props.children[0]\n }\n }\n}\n\nProvider.displayName = 'Provider'\n\nfunction connect (mapContextToProps?: (obj:Object) => Object) {\n return (wrappedComponent: any) => {\n class Connected extends Component<{}, {}> {\n mapContextToProps = (ctx: Object): Object => {\n return mapContextToProps ? mapContextToProps(ctx) : ctx\n }\n render () {\n return h(wrappedComponent, {\n ...this.mapContextToProps(this.context['__CTX__']),\n ...this.props\n })\n }\n }\n Connected.displayName = `connect(${wrappedComponent.displayName ||\n wrappedComponent.name ||\n 'Component'})`\n return Connected\n }\n}\n\nexport { Provider, connect }\n","import { Component } from 'preact'\n\nfunction shallowEqual(a: any, b: any) {\n for (let key in a) if (a[key] !== b[key]) return false\n for (let key in b) if (!(key in a)) return false\n return true\n}\n\nabstract class PureComponent extends Component {\n shouldComponentUpdate(props: Props, state: State) {\n return !(shallowEqual(props, this.props) && shallowEqual(state, this.state))\n }\n}\n\nexport default PureComponent\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport * as style from './style.css'\nimport PureComponent from '../../../lib/preact-pure-component'\n\ninterface Props {\n addIntersectionElement: (el: HTMLDivElement) => void\n id: string\n source?: string\n}\n\nexport class Timing extends PureComponent {\n tail?: HTMLDivElement\n\n componentDidMount() {\n const { addIntersectionElement } = this.props\n if (this.tail) {\n addIntersectionElement(this.tail)\n }\n }\n render() {\n const { source, id } = this.props\n if (source) {\n return
(this.tail = tail)} className={style.tail} id={`${id}-tail`} />\n }\n return null\n }\n}\n","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nimport { Component } from 'preact';\n\nfunction shallowEqual(a, b) {\n for (var key in a) {\n if (a[key] !== b[key]) return false;\n }for (var _key in b) {\n if (!(_key in a)) return false;\n }return true;\n}\n\nvar PureComponent = function (_Component) {\n _inherits(PureComponent, _Component);\n\n function PureComponent() {\n _classCallCheck(this, PureComponent);\n\n return _possibleConstructorReturn(this, (PureComponent.__proto__ || Object.getPrototypeOf(PureComponent)).apply(this, arguments));\n }\n\n _createClass(PureComponent, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(props, state) {\n return !(shallowEqual(props, this.props) && shallowEqual(state, this.state));\n }\n }]);\n\n return PureComponent;\n}(Component);\n\nexport default PureComponent;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// @jsx h\n\nimport { h } from 'preact';\nimport PureComponent from '../lib/preact-pure-component';\nvar style = {\n 'byline': 'dhfc-1_0_0-beta_28-byline',\n 'byline__name': 'dhfc-1_0_0-beta_28-byline__name'\n};\n\nvar Byline = function (_PureComponent) {\n _inherits(Byline, _PureComponent);\n\n function Byline() {\n _classCallCheck(this, Byline);\n\n return _possibleConstructorReturn(this, (Byline.__proto__ || Object.getPrototypeOf(Byline)).apply(this, arguments));\n }\n\n _createClass(Byline, [{\n key: 'render',\n value: function render() {\n var authors = this.props.authors;\n\n var len = authors.length;\n var className = '' + style.byline + (this.props.className ? ' ' + this.props.className : '');\n\n if (len === 0) return null;\n\n return h(\n 'div',\n { className: className },\n 'Av',\n ' ',\n authors.map(function (author, idx) {\n if (len === 1) {\n return h(\n 'span',\n { key: String(idx) },\n h('span', {\n className: style.byline__name,\n dangerouslySetInnerHTML: { __html: author.name }\n })\n );\n }\n\n if (idx === len - 1) {\n return h(\n 'span',\n { key: String(idx) },\n '&',\n ' ',\n h('span', {\n className: style.byline__name,\n dangerouslySetInnerHTML: { __html: author.name }\n })\n );\n }\n\n if (idx === len - 2) {\n return h(\n 'span',\n { key: String(idx) },\n h('span', {\n className: style.byline__name,\n dangerouslySetInnerHTML: { __html: author.name }\n }),\n ' '\n );\n }\n\n return h(\n 'span',\n { key: String(idx) },\n h('span', {\n className: style.byline__name,\n dangerouslySetInnerHTML: { __html: author.name }\n }),\n ',',\n ' '\n );\n })\n );\n }\n }]);\n\n return Byline;\n}(PureComponent);\n\nexport default Byline;","import { createImageUrl } from '@nrk/serum-imagecrop-utils';\n\n\nexport function getImageUrl(image, options) {\n var _ref = options || {},\n _ref$width = _ref.width,\n width = _ref$width === undefined ? 120 : _ref$width,\n _ref$ratio = _ref.ratio,\n ratio = _ref$ratio === undefined ? '1:1' : _ref$ratio;\n\n switch (image.type) {\n case 'polopoly-image':\n {\n return createImageUrl({ id: image.id, width: width, ratio: ratio });\n }\n case 'url-image':\n {\n return image.url;\n }\n }\n}","// @jsx h\n\nimport { h } from 'preact';\nimport { getImageUrl } from '../../lib/image-url';\n\nvar styles = {\n 'chatLog': 'dhfc-1_0_0-beta_28-chatLog',\n 'avatarImage': 'dhfc-1_0_0-beta_28-avatarImage',\n 'avatar': 'dhfc-1_0_0-beta_28-avatar',\n 'avatar__placeholder': 'dhfc-1_0_0-beta_28-avatar__placeholder',\n 'avatar--right': 'dhfc-1_0_0-beta_28-avatar--right',\n 'date': 'dhfc-1_0_0-beta_28-date',\n 'date--isFirst': 'dhfc-1_0_0-beta_28-date--isFirst',\n 'message': 'dhfc-1_0_0-beta_28-message',\n 'message--left': 'dhfc-1_0_0-beta_28-message--left',\n 'message--showAvatar': 'dhfc-1_0_0-beta_28-message--showAvatar',\n 'message--right': 'dhfc-1_0_0-beta_28-message--right',\n 'message--isLastInGroup': 'dhfc-1_0_0-beta_28-message--isLastInGroup',\n 'message__text': 'dhfc-1_0_0-beta_28-message__text',\n 'message__text--right': 'dhfc-1_0_0-beta_28-message__text--right',\n 'message__text--left': 'dhfc-1_0_0-beta_28-message__text--left',\n 'message__image': 'dhfc-1_0_0-beta_28-message__image',\n 'message__images': 'dhfc-1_0_0-beta_28-message__images',\n 'message__image--expanded': 'dhfc-1_0_0-beta_28-message__image--expanded',\n 'message__image--clickable': 'dhfc-1_0_0-beta_28-message__image--clickable',\n 'message__image--hover': 'dhfc-1_0_0-beta_28-message__image--hover',\n 'message__image--left': 'dhfc-1_0_0-beta_28-message__image--left',\n 'message__image--right': 'dhfc-1_0_0-beta_28-message__image--right',\n 'message__name': 'dhfc-1_0_0-beta_28-message__name',\n 'message__content': 'dhfc-1_0_0-beta_28-message__content',\n 'message__content--left': 'dhfc-1_0_0-beta_28-message__content--left',\n 'message__content--right': 'dhfc-1_0_0-beta_28-message__content--right',\n 'message__content--showName': 'dhfc-1_0_0-beta_28-message__content--showName'\n};\n\n\nexport function AvatarImage(props) {\n var image = props.image,\n alt = props.alt,\n title = props.title;\n\n return h('img', {\n className: styles.avatarImage,\n title: title,\n src: getImageUrl(image),\n alt: alt,\n nopin: 'no-pin',\n 'data-pin-nopin': 'true'\n });\n}","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// @jsx h\n\nimport { Component, h } from 'preact';\nimport { bem } from '@nrk/dh-utils';\nimport { AvatarImage } from './AvatarImage';\n\nvar styles = {\n 'chatLog': 'dhfc-1_0_0-beta_28-chatLog',\n 'avatarImage': 'dhfc-1_0_0-beta_28-avatarImage',\n 'avatar': 'dhfc-1_0_0-beta_28-avatar',\n 'avatar__placeholder': 'dhfc-1_0_0-beta_28-avatar__placeholder',\n 'avatar--right': 'dhfc-1_0_0-beta_28-avatar--right',\n 'date': 'dhfc-1_0_0-beta_28-date',\n 'date--isFirst': 'dhfc-1_0_0-beta_28-date--isFirst',\n 'message': 'dhfc-1_0_0-beta_28-message',\n 'message--left': 'dhfc-1_0_0-beta_28-message--left',\n 'message--showAvatar': 'dhfc-1_0_0-beta_28-message--showAvatar',\n 'message--right': 'dhfc-1_0_0-beta_28-message--right',\n 'message--isLastInGroup': 'dhfc-1_0_0-beta_28-message--isLastInGroup',\n 'message__text': 'dhfc-1_0_0-beta_28-message__text',\n 'message__text--right': 'dhfc-1_0_0-beta_28-message__text--right',\n 'message__text--left': 'dhfc-1_0_0-beta_28-message__text--left',\n 'message__image': 'dhfc-1_0_0-beta_28-message__image',\n 'message__images': 'dhfc-1_0_0-beta_28-message__images',\n 'message__image--expanded': 'dhfc-1_0_0-beta_28-message__image--expanded',\n 'message__image--clickable': 'dhfc-1_0_0-beta_28-message__image--clickable',\n 'message__image--hover': 'dhfc-1_0_0-beta_28-message__image--hover',\n 'message__image--left': 'dhfc-1_0_0-beta_28-message__image--left',\n 'message__image--right': 'dhfc-1_0_0-beta_28-message__image--right',\n 'message__name': 'dhfc-1_0_0-beta_28-message__name',\n 'message__content': 'dhfc-1_0_0-beta_28-message__content',\n 'message__content--left': 'dhfc-1_0_0-beta_28-message__content--left',\n 'message__content--right': 'dhfc-1_0_0-beta_28-message__content--right',\n 'message__content--showName': 'dhfc-1_0_0-beta_28-message__content--showName'\n};\n\n\nexport var Avatar = function (_Component) {\n _inherits(Avatar, _Component);\n\n function Avatar() {\n _classCallCheck(this, Avatar);\n\n return _possibleConstructorReturn(this, (Avatar.__proto__ || Object.getPrototypeOf(Avatar)).apply(this, arguments));\n }\n\n _createClass(Avatar, [{\n key: 'render',\n value: function render() {\n var person = this.props.person;\n var name = person.name,\n image = person.image;\n\n var displayImage = image && image.type !== 'none';\n return h(\n 'div',\n { 'aria-hidden': true, className: bem(styles.avatar, person.side) },\n displayImage && h(AvatarImage, { image: image, alt: person.name, title: person.name }),\n !displayImage && h(\n 'span',\n { className: styles.avatar__placeholder, title: name },\n getInitials(name)\n )\n );\n }\n }]);\n\n return Avatar;\n}(Component);\n\nexport function getInitials() {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n\n var initials = name.replace(/\\(.*\\)/, '').trim().split(/[ -]/).map(function (item) {\n return item.charAt(0).toUpperCase();\n });\n\n if (initials.length < 2) return initials[0];\n return [initials[0], initials[initials.length - 1]].join('');\n}","// @jsx h\n\nimport { h } from 'preact';\nimport { bem } from '@nrk/dh-utils';\nimport { Avatar } from '../../Avatar/index';\nimport { getImageUrl } from '../../lib/image-url';\n\nvar styles = {\n 'chatLog': 'dhfc-1_0_0-beta_28-chatLog',\n 'avatarImage': 'dhfc-1_0_0-beta_28-avatarImage',\n 'avatar': 'dhfc-1_0_0-beta_28-avatar',\n 'avatar__placeholder': 'dhfc-1_0_0-beta_28-avatar__placeholder',\n 'avatar--right': 'dhfc-1_0_0-beta_28-avatar--right',\n 'date': 'dhfc-1_0_0-beta_28-date',\n 'date--isFirst': 'dhfc-1_0_0-beta_28-date--isFirst',\n 'message': 'dhfc-1_0_0-beta_28-message',\n 'message--left': 'dhfc-1_0_0-beta_28-message--left',\n 'message--showAvatar': 'dhfc-1_0_0-beta_28-message--showAvatar',\n 'message--right': 'dhfc-1_0_0-beta_28-message--right',\n 'message--isLastInGroup': 'dhfc-1_0_0-beta_28-message--isLastInGroup',\n 'message__text': 'dhfc-1_0_0-beta_28-message__text',\n 'message__text--right': 'dhfc-1_0_0-beta_28-message__text--right',\n 'message__text--left': 'dhfc-1_0_0-beta_28-message__text--left',\n 'message__image': 'dhfc-1_0_0-beta_28-message__image',\n 'message__images': 'dhfc-1_0_0-beta_28-message__images',\n 'message__image--expanded': 'dhfc-1_0_0-beta_28-message__image--expanded',\n 'message__image--clickable': 'dhfc-1_0_0-beta_28-message__image--clickable',\n 'message__image--hover': 'dhfc-1_0_0-beta_28-message__image--hover',\n 'message__image--left': 'dhfc-1_0_0-beta_28-message__image--left',\n 'message__image--right': 'dhfc-1_0_0-beta_28-message__image--right',\n 'message__name': 'dhfc-1_0_0-beta_28-message__name',\n 'message__content': 'dhfc-1_0_0-beta_28-message__content',\n 'message__content--left': 'dhfc-1_0_0-beta_28-message__content--left',\n 'message__content--right': 'dhfc-1_0_0-beta_28-message__content--right',\n 'message__content--showName': 'dhfc-1_0_0-beta_28-message__content--showName'\n};\n\n\nexport var ImageMessage = function ImageMessage(props) {\n var message = props.message,\n isLastInGroup = props.isLastInGroup;\n var from = message.from,\n content = message.content;\n var name = from.name,\n side = from.side,\n display = from.display;\n\n var showAvatar = ['avatar', 'both'].indexOf(display) !== -1;\n var showName = ['name', 'both'].indexOf(display) !== -1;\n var imageSrc = getImageUrl(content.image, { width: 320, ratio: '1:1' });\n\n return h(\n 'div',\n { className: bem(styles.message, side, { showAvatar: showAvatar, isLastInGroup: isLastInGroup }) },\n h(\n 'span',\n { className: 'nrk-sr' },\n name,\n ':'\n ),\n showAvatar && h(Avatar, { person: from }),\n h(\n 'div',\n { className: bem(styles.message__content, side, { showName: showName }) },\n h(\n 'span',\n { 'aria-hidden': true, className: bem(styles.message__name, side) },\n showName && name\n ),\n h(\n 'span',\n { className: bem(styles.message__image, side) },\n h('img', {\n src: imageSrc,\n alt: content.image.alt || '',\n nopin: 'nopin',\n 'data-pin-nopin': 'true'\n })\n )\n )\n );\n};","// @jsx h\n\nimport { h } from 'preact';\nimport { bem } from '@nrk/dh-utils';\nimport { Avatar } from '../../Avatar';\n\nvar styles = {\n 'chatLog': 'dhfc-1_0_0-beta_28-chatLog',\n 'avatarImage': 'dhfc-1_0_0-beta_28-avatarImage',\n 'avatar': 'dhfc-1_0_0-beta_28-avatar',\n 'avatar__placeholder': 'dhfc-1_0_0-beta_28-avatar__placeholder',\n 'avatar--right': 'dhfc-1_0_0-beta_28-avatar--right',\n 'date': 'dhfc-1_0_0-beta_28-date',\n 'date--isFirst': 'dhfc-1_0_0-beta_28-date--isFirst',\n 'message': 'dhfc-1_0_0-beta_28-message',\n 'message--left': 'dhfc-1_0_0-beta_28-message--left',\n 'message--showAvatar': 'dhfc-1_0_0-beta_28-message--showAvatar',\n 'message--right': 'dhfc-1_0_0-beta_28-message--right',\n 'message--isLastInGroup': 'dhfc-1_0_0-beta_28-message--isLastInGroup',\n 'message__text': 'dhfc-1_0_0-beta_28-message__text',\n 'message__text--right': 'dhfc-1_0_0-beta_28-message__text--right',\n 'message__text--left': 'dhfc-1_0_0-beta_28-message__text--left',\n 'message__image': 'dhfc-1_0_0-beta_28-message__image',\n 'message__images': 'dhfc-1_0_0-beta_28-message__images',\n 'message__image--expanded': 'dhfc-1_0_0-beta_28-message__image--expanded',\n 'message__image--clickable': 'dhfc-1_0_0-beta_28-message__image--clickable',\n 'message__image--hover': 'dhfc-1_0_0-beta_28-message__image--hover',\n 'message__image--left': 'dhfc-1_0_0-beta_28-message__image--left',\n 'message__image--right': 'dhfc-1_0_0-beta_28-message__image--right',\n 'message__name': 'dhfc-1_0_0-beta_28-message__name',\n 'message__content': 'dhfc-1_0_0-beta_28-message__content',\n 'message__content--left': 'dhfc-1_0_0-beta_28-message__content--left',\n 'message__content--right': 'dhfc-1_0_0-beta_28-message__content--right',\n 'message__content--showName': 'dhfc-1_0_0-beta_28-message__content--showName'\n};\n\n\nexport var TextMessage = function TextMessage(props) {\n var message = props.message,\n isLastInGroup = props.isLastInGroup;\n var from = message.from,\n content = message.content;\n var name = from.name,\n side = from.side,\n display = from.display;\n\n var showAvatar = ['avatar', 'both'].indexOf(display) !== -1;\n var showName = ['name', 'both'].indexOf(display) !== -1;\n\n return h(\n 'div',\n { className: bem(styles.message, side, { showAvatar: showAvatar, isLastInGroup: isLastInGroup }) },\n h(\n 'span',\n { className: 'nrk-sr' },\n name,\n ':'\n ),\n showAvatar && h(Avatar, { person: from }),\n h(\n 'div',\n { className: bem(styles.message__content, side, { showName: showName }) },\n h(\n 'span',\n { 'aria-hidden': true, className: bem(styles.message__name, side) },\n showName && name\n ),\n h('span', {\n className: bem(styles.message__text, side),\n dangerouslySetInnerHTML: { __html: content.message }\n })\n )\n );\n};","// @jsx h\n\nimport { h } from 'preact';\nimport { bem } from '@nrk/dh-utils';\nimport { Avatar } from '../../Avatar/index';\nimport { getImageUrl } from '../../lib/image-url';\n\nvar styles = {\n 'chatLog': 'dhfc-1_0_0-beta_28-chatLog',\n 'avatarImage': 'dhfc-1_0_0-beta_28-avatarImage',\n 'avatar': 'dhfc-1_0_0-beta_28-avatar',\n 'avatar__placeholder': 'dhfc-1_0_0-beta_28-avatar__placeholder',\n 'avatar--right': 'dhfc-1_0_0-beta_28-avatar--right',\n 'date': 'dhfc-1_0_0-beta_28-date',\n 'date--isFirst': 'dhfc-1_0_0-beta_28-date--isFirst',\n 'message': 'dhfc-1_0_0-beta_28-message',\n 'message--left': 'dhfc-1_0_0-beta_28-message--left',\n 'message--showAvatar': 'dhfc-1_0_0-beta_28-message--showAvatar',\n 'message--right': 'dhfc-1_0_0-beta_28-message--right',\n 'message--isLastInGroup': 'dhfc-1_0_0-beta_28-message--isLastInGroup',\n 'message__text': 'dhfc-1_0_0-beta_28-message__text',\n 'message__text--right': 'dhfc-1_0_0-beta_28-message__text--right',\n 'message__text--left': 'dhfc-1_0_0-beta_28-message__text--left',\n 'message__image': 'dhfc-1_0_0-beta_28-message__image',\n 'message__images': 'dhfc-1_0_0-beta_28-message__images',\n 'message__image--expanded': 'dhfc-1_0_0-beta_28-message__image--expanded',\n 'message__image--clickable': 'dhfc-1_0_0-beta_28-message__image--clickable',\n 'message__image--hover': 'dhfc-1_0_0-beta_28-message__image--hover',\n 'message__image--left': 'dhfc-1_0_0-beta_28-message__image--left',\n 'message__image--right': 'dhfc-1_0_0-beta_28-message__image--right',\n 'message__name': 'dhfc-1_0_0-beta_28-message__name',\n 'message__content': 'dhfc-1_0_0-beta_28-message__content',\n 'message__content--left': 'dhfc-1_0_0-beta_28-message__content--left',\n 'message__content--right': 'dhfc-1_0_0-beta_28-message__content--right',\n 'message__content--showName': 'dhfc-1_0_0-beta_28-message__content--showName'\n};\n\n\nexport var ImagesMessage = function ImagesMessage(props) {\n var message = props.message,\n isLastInGroup = props.isLastInGroup;\n var from = message.from,\n content = message.content;\n var name = from.name,\n side = from.side,\n display = from.display;\n\n var showAvatar = ['avatar', 'both'].indexOf(display) !== -1;\n var showName = ['name', 'both'].indexOf(display) !== -1;\n\n return h(\n 'div',\n { className: bem(styles.message, side, { showAvatar: showAvatar, isLastInGroup: isLastInGroup }) },\n h(\n 'span',\n { className: 'nrk-sr' },\n name,\n ':'\n ),\n showAvatar && h(Avatar, { person: from }),\n h(\n 'div',\n { className: bem(styles.message__content, side, { showName: showName }) },\n h(\n 'span',\n { 'aria-hidden': true, className: bem(styles.message__name, side) },\n showName && name\n ),\n h(\n 'ul',\n { className: bem(styles.message__images, side) },\n content.images.map(function (image, idx) {\n var imageSrc = getImageUrl(image, { width: 160, ratio: '1:1' });\n return h(\n 'li',\n { key: idx },\n h('img', {\n src: imageSrc,\n alt: image.alt || '',\n nopin: 'nopin',\n 'data-pin-nopin': 'true'\n })\n );\n })\n )\n )\n );\n};","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// @jsx h\n\nimport { Component, h } from 'preact';\nimport { ImageMessage } from './ImageMessage';\nimport { TextMessage } from './TextMessage';\nimport { ImagesMessage } from './ImagesMessage/index';\n\nexport var Message = function (_Component) {\n _inherits(Message, _Component);\n\n function Message() {\n _classCallCheck(this, Message);\n\n return _possibleConstructorReturn(this, (Message.__proto__ || Object.getPrototypeOf(Message)).apply(this, arguments));\n }\n\n _createClass(Message, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n isLastInGroup = _props.isLastInGroup,\n message = _props.message;\n var content = message.content;\n var type = content.type;\n\n\n switch (type) {\n case 'image':\n return h(ImageMessage, { message: message, isLastInGroup: isLastInGroup });\n case 'images':\n return h(ImagesMessage, { message: message, isLastInGroup: isLastInGroup });\n case 'text':\n return h(TextMessage, { message: message, isLastInGroup: isLastInGroup });\n default:\n throw new Error('Unknown message type ' + type);\n }\n }\n }]);\n\n return Message;\n}(Component);","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// @jsx h\n\nimport { Component, h } from 'preact';\nimport { bem } from '@nrk/dh-utils';\n\nvar styles = {\n 'chatLog': 'dhfc-1_0_0-beta_28-chatLog',\n 'avatarImage': 'dhfc-1_0_0-beta_28-avatarImage',\n 'avatar': 'dhfc-1_0_0-beta_28-avatar',\n 'avatar__placeholder': 'dhfc-1_0_0-beta_28-avatar__placeholder',\n 'avatar--right': 'dhfc-1_0_0-beta_28-avatar--right',\n 'date': 'dhfc-1_0_0-beta_28-date',\n 'date--isFirst': 'dhfc-1_0_0-beta_28-date--isFirst',\n 'message': 'dhfc-1_0_0-beta_28-message',\n 'message--left': 'dhfc-1_0_0-beta_28-message--left',\n 'message--showAvatar': 'dhfc-1_0_0-beta_28-message--showAvatar',\n 'message--right': 'dhfc-1_0_0-beta_28-message--right',\n 'message--isLastInGroup': 'dhfc-1_0_0-beta_28-message--isLastInGroup',\n 'message__text': 'dhfc-1_0_0-beta_28-message__text',\n 'message__text--right': 'dhfc-1_0_0-beta_28-message__text--right',\n 'message__text--left': 'dhfc-1_0_0-beta_28-message__text--left',\n 'message__image': 'dhfc-1_0_0-beta_28-message__image',\n 'message__images': 'dhfc-1_0_0-beta_28-message__images',\n 'message__image--expanded': 'dhfc-1_0_0-beta_28-message__image--expanded',\n 'message__image--clickable': 'dhfc-1_0_0-beta_28-message__image--clickable',\n 'message__image--hover': 'dhfc-1_0_0-beta_28-message__image--hover',\n 'message__image--left': 'dhfc-1_0_0-beta_28-message__image--left',\n 'message__image--right': 'dhfc-1_0_0-beta_28-message__image--right',\n 'message__name': 'dhfc-1_0_0-beta_28-message__name',\n 'message__content': 'dhfc-1_0_0-beta_28-message__content',\n 'message__content--left': 'dhfc-1_0_0-beta_28-message__content--left',\n 'message__content--right': 'dhfc-1_0_0-beta_28-message__content--right',\n 'message__content--showName': 'dhfc-1_0_0-beta_28-message__content--showName'\n};\n\n\nexport var Date = function (_Component) {\n _inherits(Date, _Component);\n\n function Date() {\n _classCallCheck(this, Date);\n\n return _possibleConstructorReturn(this, (Date.__proto__ || Object.getPrototypeOf(Date)).apply(this, arguments));\n }\n\n _createClass(Date, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n date = _props.date,\n index = _props.index;\n\n\n if (!date) return null;\n\n return h('h4', {\n className: bem(styles.date, { isFirst: index === 0 }),\n dangerouslySetInnerHTML: { __html: date }\n });\n }\n }]);\n\n return Date;\n}(Component);","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// @jsx h\n\nimport { h } from 'preact';\nimport PureComponent from '../lib/preact-pure-component';\nimport { Message } from './Message';\nimport { Date } from './Date';\n\nvar styles = {\n 'chatLog': 'dhfc-1_0_0-beta_28-chatLog',\n 'avatarImage': 'dhfc-1_0_0-beta_28-avatarImage',\n 'avatar': 'dhfc-1_0_0-beta_28-avatar',\n 'avatar__placeholder': 'dhfc-1_0_0-beta_28-avatar__placeholder',\n 'avatar--right': 'dhfc-1_0_0-beta_28-avatar--right',\n 'date': 'dhfc-1_0_0-beta_28-date',\n 'date--isFirst': 'dhfc-1_0_0-beta_28-date--isFirst',\n 'message': 'dhfc-1_0_0-beta_28-message',\n 'message--left': 'dhfc-1_0_0-beta_28-message--left',\n 'message--showAvatar': 'dhfc-1_0_0-beta_28-message--showAvatar',\n 'message--right': 'dhfc-1_0_0-beta_28-message--right',\n 'message--isLastInGroup': 'dhfc-1_0_0-beta_28-message--isLastInGroup',\n 'message__text': 'dhfc-1_0_0-beta_28-message__text',\n 'message__text--right': 'dhfc-1_0_0-beta_28-message__text--right',\n 'message__text--left': 'dhfc-1_0_0-beta_28-message__text--left',\n 'message__image': 'dhfc-1_0_0-beta_28-message__image',\n 'message__images': 'dhfc-1_0_0-beta_28-message__images',\n 'message__image--expanded': 'dhfc-1_0_0-beta_28-message__image--expanded',\n 'message__image--clickable': 'dhfc-1_0_0-beta_28-message__image--clickable',\n 'message__image--hover': 'dhfc-1_0_0-beta_28-message__image--hover',\n 'message__image--left': 'dhfc-1_0_0-beta_28-message__image--left',\n 'message__image--right': 'dhfc-1_0_0-beta_28-message__image--right',\n 'message__name': 'dhfc-1_0_0-beta_28-message__name',\n 'message__content': 'dhfc-1_0_0-beta_28-message__content',\n 'message__content--left': 'dhfc-1_0_0-beta_28-message__content--left',\n 'message__content--right': 'dhfc-1_0_0-beta_28-message__content--right',\n 'message__content--showName': 'dhfc-1_0_0-beta_28-message__content--showName'\n};\n\nvar ChatLog = function (_PureComponent) {\n _inherits(ChatLog, _PureComponent);\n\n function ChatLog() {\n _classCallCheck(this, ChatLog);\n\n return _possibleConstructorReturn(this, (ChatLog.__proto__ || Object.getPrototypeOf(ChatLog)).apply(this, arguments));\n }\n\n _createClass(ChatLog, [{\n key: 'render',\n value: function render() {\n var messages = this.props.messages;\n\n var className = '' + styles.chatLog + (this.props.className ? ' ' + this.props.className : '');\n\n return h(\n 'div',\n { className: className },\n messages.map(function (message, idx) {\n return [h(Date, { date: message.date, index: idx, key: 'date_' + idx }), h(Message, {\n key: idx,\n isLastInGroup: isLastInGroup(messages, idx),\n message: message\n })];\n })\n );\n }\n }]);\n\n return ChatLog;\n}(PureComponent);\n\nfunction isLastInGroup(messages, index) {\n return messages.length - 1 === index;\n}\n\nexport default ChatLog;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/** @jsx h */\nimport { Component, h } from 'preact';\n\nexport var HtmlContent = function (_Component) {\n _inherits(HtmlContent, _Component);\n\n function HtmlContent() {\n _classCallCheck(this, HtmlContent);\n\n return _possibleConstructorReturn(this, (HtmlContent.__proto__ || Object.getPrototypeOf(HtmlContent)).apply(this, arguments));\n }\n\n _createClass(HtmlContent, [{\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps) {\n return nextProps.content !== this.props.content;\n }\n }, {\n key: 'render',\n value: function render() {\n var _props = this.props,\n content = _props.content,\n className = _props.className,\n dataKey = _props.dataKey;\n\n switch (this.props.type) {\n case 'p':\n return h('p', { className: className, dangerouslySetInnerHTML: { __html: content }, 'data-key': dataKey });\n case 'div':\n return h('div', { className: className, dangerouslySetInnerHTML: { __html: content }, 'data-key': dataKey });\n default:\n return h('span', { className: className, dangerouslySetInnerHTML: { __html: content }, 'data-key': dataKey });\n }\n }\n }]);\n\n return HtmlContent;\n}(Component);","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/** @jsx h */\nimport { Component, h } from 'preact';\nimport { bem } from '@nrk/dh-utils';\n\nvar styles = {\n 'emailList': 'dhfc-1_0_0-beta_28-emailList',\n 'email': 'dhfc-1_0_0-beta_28-email',\n 'email--left': 'dhfc-1_0_0-beta_28-email--left',\n 'email--right': 'dhfc-1_0_0-beta_28-email--right',\n 'email__header': 'dhfc-1_0_0-beta_28-email__header'\n};\n\nimport { HtmlContent } from './HtmlContent/index';\n\nvar nbsp = String.fromCharCode(160);\n\nvar EmailList = function (_Component) {\n _inherits(EmailList, _Component);\n\n function EmailList() {\n _classCallCheck(this, EmailList);\n\n return _possibleConstructorReturn(this, (EmailList.__proto__ || Object.getPrototypeOf(EmailList)).apply(this, arguments));\n }\n\n _createClass(EmailList, [{\n key: 'render',\n value: function render() {\n var emails = this.props.emails;\n\n return h(\n 'div',\n { className: styles.emailList },\n emails.map(function (email, idx) {\n var datetime = email.datetime,\n from = email.from,\n to = email.to,\n subject = email.subject,\n message = email.message,\n align = email.align;\n\n return h(\n 'div',\n { className: bem(styles.email, align), key: idx },\n h(\n 'div',\n { className: styles.email__header },\n from && h(\n 'div',\n null,\n h(\n 'strong',\n null,\n 'Fra:'\n ),\n ' ',\n from\n ),\n to && h(\n 'div',\n null,\n h(\n 'strong',\n null,\n 'Til:'\n ),\n ' ',\n to\n ),\n datetime && h(\n 'div',\n { className: styles.email_header_datetime },\n h(\n 'strong',\n null,\n 'Sendt:'\n ),\n ' ',\n datetime\n ),\n subject && h(\n 'div',\n null,\n h(\n 'strong',\n null,\n 'Emne:'\n ),\n ' ',\n subject\n )\n ),\n h(HtmlContent, { content: message && message.replace(nbsp, ' ') })\n );\n })\n );\n }\n }]);\n\n return EmailList;\n}(Component);\n\nexport default EmailList;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// @jsx h\n\nimport { h } from 'preact';\nimport PureComponent from '../lib/preact-pure-component';\nvar style = {\n 'figure': 'dhfc-1_0_0-beta_28-figure',\n 'figure__credit': 'dhfc-1_0_0-beta_28-figure__credit'\n};\n\nvar Figure = function (_PureComponent) {\n _inherits(Figure, _PureComponent);\n\n function Figure() {\n _classCallCheck(this, Figure);\n\n return _possibleConstructorReturn(this, (Figure.__proto__ || Object.getPrototypeOf(Figure)).apply(this, arguments));\n }\n\n _createClass(Figure, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n caption = _props.caption,\n credit = _props.credit,\n media = _props.media;\n\n var className = '' + style.figure + (this.props.className ? ' ' + this.props.className : '');\n\n return h(\n 'figure',\n { className: className },\n media,\n caption && h(\n 'figcaption',\n null,\n caption.map(function (text, idx) {\n return h('p', { dangerouslySetInnerHTML: { __html: text }, key: String(idx) });\n }),\n credit && h(\n 'div',\n { className: style.figure__credit },\n credit\n )\n )\n );\n }\n }]);\n\n return Figure;\n}(PureComponent);\n\nexport default Figure;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// @jsx h\n\n/* eslint-disable jsx-a11y/heading-has-content */\n\nimport { h } from 'preact';\nimport PureComponent from '../lib/preact-pure-component';\nvar style = {\n 'heading': 'dhfc-1_0_0-beta_28-heading'\n};\n\nvar Heading = function (_PureComponent) {\n _inherits(Heading, _PureComponent);\n\n function Heading() {\n _classCallCheck(this, Heading);\n\n return _possibleConstructorReturn(this, (Heading.__proto__ || Object.getPrototypeOf(Heading)).apply(this, arguments));\n }\n\n _createClass(Heading, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n html = _props.html,\n level = _props.level;\n\n var className = '' + style.heading + (this.props.className ? ' ' + this.props.className : '');\n\n var htmlProps = {\n className: className\n };\n\n if (html) {\n htmlProps.dangerouslySetInnerHTML = { __html: html };\n } else {\n htmlProps.children = children;\n }\n\n switch (level) {\n case 2:\n return h('h2', htmlProps);\n\n case 3:\n return h('h3', htmlProps);\n\n case 4:\n return h('h4', htmlProps);\n\n case 5:\n return h('h5', htmlProps);\n\n case 6:\n return h('h6', htmlProps);\n\n default:\n return h('h1', htmlProps);\n }\n }\n }]);\n\n return Heading;\n}(PureComponent);\n\nexport default Heading;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// @jsx h\n\nimport { h } from 'preact';\nimport PureComponent from '../lib/preact-pure-component';\nvar style = {\n 'list': 'dhfc-1_0_0-beta_28-list'\n};\n\nvar List = function (_PureComponent) {\n _inherits(List, _PureComponent);\n\n function List() {\n _classCallCheck(this, List);\n\n return _possibleConstructorReturn(this, (List.__proto__ || Object.getPrototypeOf(List)).apply(this, arguments));\n }\n\n _createClass(List, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n type = _props.type;\n\n var className = '' + style.list + (this.props.className ? ' ' + this.props.className : '');\n\n if (type === 'numbered') {\n return h(\n 'ol',\n { className: className },\n children\n );\n }\n\n return h(\n 'ul',\n { className: className },\n children\n );\n }\n }]);\n\n return List;\n}(PureComponent);\n\nexport default List;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// @jsx h\n\nimport { h } from 'preact';\nimport PureComponent from '../lib/preact-pure-component';\n\nvar ListItem = function (_PureComponent) {\n _inherits(ListItem, _PureComponent);\n\n function ListItem() {\n _classCallCheck(this, ListItem);\n\n return _possibleConstructorReturn(this, (ListItem.__proto__ || Object.getPrototypeOf(ListItem)).apply(this, arguments));\n }\n\n _createClass(ListItem, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n html = _props.html;\n\n\n if (html) {\n return h('li', { dangerouslySetInnerHTML: { __html: html } });\n }\n\n return h(\n 'li',\n null,\n children\n );\n }\n }]);\n\n return ListItem;\n}(PureComponent);\n\nexport default ListItem;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// @jsx h\n\nimport { h } from 'preact';\nimport PureComponent from '../lib/preact-pure-component';\nvar style = {\n 'paragraph': 'dhfc-1_0_0-beta_28-paragraph'\n};\n\nvar Paragraph = function (_PureComponent) {\n _inherits(Paragraph, _PureComponent);\n\n function Paragraph() {\n _classCallCheck(this, Paragraph);\n\n return _possibleConstructorReturn(this, (Paragraph.__proto__ || Object.getPrototypeOf(Paragraph)).apply(this, arguments));\n }\n\n _createClass(Paragraph, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n html = _props.html;\n\n var className = '' + style.paragraph + (this.props.className ? ' ' + this.props.className : '');\n\n if (html) {\n return h('p', { className: className, dangerouslySetInnerHTML: { __html: html } });\n }\n\n return h(\n 'p',\n { className: className },\n children\n );\n }\n }]);\n\n return Paragraph;\n}(PureComponent);\n\nexport default Paragraph;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// @jsx h\n\n/* eslint-disable jsx-a11y/aria-role */\n\nimport { h } from 'preact';\nimport PureComponent from '../lib/preact-pure-component';\nvar style = {\n 'pullQuote': 'dhfc-1_0_0-beta_28-pullQuote',\n 'pullQuote__content': 'dhfc-1_0_0-beta_28-pullQuote__content',\n 'pullQuote__footer': 'dhfc-1_0_0-beta_28-pullQuote__footer'\n};\n\nvar PullQuote = function (_PureComponent) {\n _inherits(PullQuote, _PureComponent);\n\n function PullQuote() {\n _classCallCheck(this, PullQuote);\n\n return _possibleConstructorReturn(this, (PullQuote.__proto__ || Object.getPrototypeOf(PullQuote)).apply(this, arguments));\n }\n\n _createClass(PullQuote, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n cite = _props.cite,\n html = _props.html;\n\n var className = '' + style.pullQuote + (this.props.className ? ' ' + this.props.className : '');\n\n return h(\n 'blockquote',\n { className: className },\n h(\n 'div',\n { className: style.pullQuote__content },\n h('p', { dangerouslySetInnerHTML: { __html: html } })\n ),\n cite && h(\n 'footer',\n { className: style.pullQuote__footer },\n h(\n 'cite',\n { role: 'text' },\n h(\n 'svg',\n { viewBox: '0 0 20 30', 'aria-hidden': 'true' },\n h('path', { d: 'M 5.5,5.5 L5.5,24.5 L14.5,24.5' }),\n h('circle', { cx: '5.5', cy: '5.5', r: '3.5' })\n ),\n h('span', {\n dangerouslySetInnerHTML: {\n __html: '\\u2013 ' + (cite || '')\n }\n })\n )\n )\n );\n }\n }]);\n\n return PullQuote;\n}(PureComponent);\n\nexport default PullQuote;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// @jsx h\n\n/* eslint-disable jsx-a11y/media-has-caption */\n\nimport { h } from 'preact';\nimport PureComponent from '../../lib/preact-pure-component';\n\nvar Video = function (_PureComponent) {\n _inherits(Video, _PureComponent);\n\n function Video() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Video);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Video.__proto__ || Object.getPrototypeOf(Video)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n isPlaying: false,\n isResolvingPlay: false,\n time: 0\n }, _this.tracks = [], _this.handlePlay = function () {\n var onPlay = _this.props.onPlay;\n\n\n _this.setState({ isPlaying: true });\n\n if (onPlay) {\n onPlay();\n }\n }, _this.handlePause = function () {\n var onPause = _this.props.onPause;\n\n\n _this.setState({ isPlaying: false });\n\n if (onPause) {\n onPause();\n }\n }, _this.handleDurationChange = function () {\n var onDurationChange = _this.props.onDurationChange;\n\n\n if (onDurationChange) {\n onDurationChange(_this.elm.duration);\n }\n }, _this.handleTimeupdate = function () {\n var onTimeupdate = _this.props.onTimeupdate;\n\n var time = _this.elm.currentTime;\n\n _this.setState({ time: time });\n\n if (onTimeupdate) {\n onTimeupdate(time);\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Video, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n var _props = this.props,\n textTracks = _props.textTracks,\n playing = _props.playing,\n onCaptionCueEnter = _props.onCaptionCueEnter,\n onCaptionCueExit = _props.onCaptionCueExit;\n\n\n if (textTracks) {\n textTracks.forEach(function (textTrack) {\n var track = _this2.elm.addTextTrack('subtitles', textTrack.language);\n track.mode = 'hidden';\n\n _this2.tracks.push(track);\n\n try {\n textTrack.captions.forEach(function (a) {\n return track.addCue(new window.VTTCue(Number(a.in), Number(a.out), a.text));\n });\n } catch (_) {\n // ignore error\n\n textTrack.captions.forEach(function (a) {\n return track.addCue(new window.TextTrackCue(Number(a.in), Number(a.out), a.text));\n });\n }\n\n var _loop = function _loop(i) {\n var cue = track.cues[i];\n\n try {\n cue.onenter = function () {\n if (typeof onCaptionCueEnter !== 'undefined') {\n onCaptionCueEnter({\n in: cue.startTime,\n out: cue.endTime,\n text: cue.text\n });\n }\n };\n cue.onexit = function () {\n if (typeof onCaptionCueExit !== 'undefined') {\n onCaptionCueExit();\n }\n };\n } catch (_) {\n // ignore error\n }\n };\n\n for (var i = 0; i < track.cues.length; i++) {\n _loop(i);\n }\n });\n }\n\n if (playing) {\n this.play();\n }\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n if (prevProps.playing !== this.props.playing) {\n if (this.props.playing) {\n this.play();\n } else {\n this.pause();\n }\n }\n }\n }, {\n key: 'play',\n value: function play() {\n var _this3 = this;\n\n var onError = this.props.onError;\n\n var playPromise = this.elm.play();\n\n if (playPromise) {\n this.setState({ isResolvingPlay: true });\n\n playPromise.then(function () {\n _this3.setState({ isResolvingPlay: false });\n }).catch(function (err) {\n if (onError) {\n onError(err.message);\n }\n\n _this3.setState({ isResolvingPlay: false });\n });\n }\n }\n }, {\n key: 'pause',\n value: function pause() {\n this.elm.pause();\n }\n }, {\n key: 'seek',\n value: function seek(time) {\n this.elm.currentTime = time;\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var _props2 = this.props,\n playing = _props2.playing,\n sources = _props2.sources,\n restProps = _objectWithoutProperties(_props2, ['playing', 'sources']);\n\n var isPlaying = this.state.isPlaying;\n\n\n var eventHandlers = {\n onPlay: this.handlePlay,\n onPause: this.handlePause,\n onDurationChange: this.handleDurationChange,\n onTimeupdate: this.handleTimeupdate\n };\n\n var dataProps = {};\n\n if (isPlaying) {\n dataProps['data-playing'] = true;\n }\n\n return h(\n 'video',\n _extends({}, restProps, eventHandlers, {\n ref: function ref(elm) {\n return _this4.elm = elm;\n }\n }, dataProps),\n sources.map(function (source) {\n return h('source', _extends({}, source, { key: source.type }));\n })\n );\n }\n }]);\n\n return Video;\n}(PureComponent);\n\nexport default Video;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// @jsx h\n\nimport { bem } from '@nrk/dh-utils';\nimport { h } from 'preact';\nimport PureComponent from '../../lib/preact-pure-component';\nimport Video from '../Video';\nvar style = {\n 'responsiveVideo': 'dhfc-1_0_0-beta_28-responsiveVideo',\n 'responsiveVideo__720p': 'dhfc-1_0_0-beta_28-responsiveVideo__720p',\n 'responsiveVideo--1080p': 'dhfc-1_0_0-beta_28-responsiveVideo--1080p',\n 'responsiveVideo__1080p': 'dhfc-1_0_0-beta_28-responsiveVideo__1080p'\n};\n\n\nvar THRESHOLD_1080P = 960;\n\nvar ResponsiveVideo = function (_PureComponent) {\n _inherits(ResponsiveVideo, _PureComponent);\n\n function ResponsiveVideo() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, ResponsiveVideo);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = ResponsiveVideo.__proto__ || Object.getPrototypeOf(ResponsiveVideo)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n time: 0\n }, _this.handleTimeupdate = function (time) {\n var onTimeupdate = _this.props.onTimeupdate;\n\n\n _this.setState({ time: time });\n\n if (onTimeupdate) {\n onTimeupdate(time);\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(ResponsiveVideo, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n var prevIs1080p = prevProps.viewport.width >= THRESHOLD_1080P;\n var is1080p = this.props.viewport.width >= THRESHOLD_1080P;\n\n if (is1080p !== prevIs1080p) {\n this.seek(this.state.time);\n }\n }\n }, {\n key: 'seek',\n value: function seek(time) {\n var is1080p = this.props.viewport.width >= THRESHOLD_1080P;\n\n if (is1080p) {\n this.resolution1080p.seek(time);\n } else {\n this.resolution720p.seek(time);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n playing = _props.playing,\n resolution720p = _props.resolution720p,\n resolution1080p = _props.resolution1080p,\n viewport = _props.viewport,\n restProps = _objectWithoutProperties(_props, ['playing', 'resolution720p', 'resolution1080p', 'viewport']);\n\n if (!resolution720p) {\n throw new Error('Missing `resolution720p` property');\n }\n\n if (!resolution1080p) {\n throw new Error('Missing `resolution1080p` property');\n }\n\n var isValidViewport = viewport.width > -1 && viewport.height > -1;\n var is1080p = viewport.width >= THRESHOLD_1080P;\n var className = '' + bem(style.responsiveVideo, is1080p && '1080p') + (this.props.className ? ' ' + this.props.className : '');\n\n return h(\n 'div',\n { className: className },\n h(Video, _extends({}, resolution720p, restProps, {\n className: style.responsiveVideo__720p,\n playing: isValidViewport && !is1080p && playing,\n onTimeupdate: this.handleTimeupdate,\n ref: function ref(resolution720p) {\n return _this2.resolution720p = resolution720p;\n }\n })),\n h(Video, _extends({}, resolution1080p, restProps, {\n className: style.responsiveVideo__1080p,\n playing: isValidViewport && is1080p && playing,\n onTimeupdate: this.handleTimeupdate,\n ref: function ref(resolution1080p) {\n return _this2.resolution1080p = resolution1080p;\n }\n }))\n );\n }\n }]);\n\n return ResponsiveVideo;\n}(PureComponent);\n\nexport default ResponsiveVideo;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/** @jsx h */\n\nimport { createImageUrl } from '@nrk/serum-imagecrop-utils';\nimport { h } from 'preact';\nimport PureComponent from '../../lib/preact-pure-component';\n\nvar SerumImage = function (_PureComponent) {\n _inherits(SerumImage, _PureComponent);\n\n function SerumImage() {\n _classCallCheck(this, SerumImage);\n\n return _possibleConstructorReturn(this, (SerumImage.__proto__ || Object.getPrototypeOf(SerumImage)).apply(this, arguments));\n }\n\n _createClass(SerumImage, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n className = _props.className,\n alt = _props.alt,\n id = _props.id,\n quality = _props.quality,\n ratio = _props.ratio,\n width = _props.width;\n\n\n var src = createImageUrl({\n id: id,\n width: width,\n quality: quality,\n ratio: ratio\n });\n\n return h('img', { className: className, src: src, alt: alt });\n }\n }]);\n\n return SerumImage;\n}(PureComponent);\n\nexport default SerumImage;","import { createImageUrl } from '@nrk/serum-imagecrop-utils';\n\nexport var IMAGE_WIDTHS = [320, 450, 650, 768, 900, 1280, 1600, 1920, 2400];\n\nexport function createResponsiveSrcSet(opts) {\n var id = opts.id,\n ratio = opts.ratio,\n quality = opts.quality;\n\n\n return IMAGE_WIDTHS.map(function (width) {\n var imageUrl = createImageUrl({ id: id, width: width, ratio: ratio, quality: quality });\n return imageUrl + ' ' + width + 'w';\n }).join(', ');\n}","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/** @jsx h */\n\nimport { createImageUrl } from '@nrk/serum-imagecrop-utils';\nimport { h } from 'preact';\nimport PureComponent from '../../lib/preact-pure-component';\nimport { createResponsiveSrcSet } from '../helpers';\n\nvar SerumResponsivePicture = function (_PureComponent) {\n _inherits(SerumResponsivePicture, _PureComponent);\n\n function SerumResponsivePicture() {\n _classCallCheck(this, SerumResponsivePicture);\n\n return _possibleConstructorReturn(this, (SerumResponsivePicture.__proto__ || Object.getPrototypeOf(SerumResponsivePicture)).apply(this, arguments));\n }\n\n _createClass(SerumResponsivePicture, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n className = _props.className,\n alt = _props.alt,\n id = _props.id,\n quality = _props.quality,\n ratio = _props.ratio;\n\n\n var defaultUrl = createImageUrl({\n id: id,\n width: 1600,\n quality: quality,\n ratio: ratio || '16:9'\n });\n\n var horizontalSourceSet = createResponsiveSrcSet({\n id: id,\n quality: quality,\n ratio: ratio || '16:9'\n });\n\n return h(\n 'picture',\n { className: className },\n h('source', { srcSet: horizontalSourceSet }),\n h('img', { src: defaultUrl, alt: alt })\n );\n }\n }]);\n\n return SerumResponsivePicture;\n}(PureComponent);\n\nexport default SerumResponsivePicture;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/** @jsx h */\n\nimport { createImageUrl } from '@nrk/serum-imagecrop-utils';\nimport { h } from 'preact';\nimport PureComponent from '../../lib/preact-pure-component';\nimport { createResponsiveSrcSet } from '../helpers';\n\nvar SerumSmartPicture = function (_PureComponent) {\n _inherits(SerumSmartPicture, _PureComponent);\n\n function SerumSmartPicture() {\n _classCallCheck(this, SerumSmartPicture);\n\n return _possibleConstructorReturn(this, (SerumSmartPicture.__proto__ || Object.getPrototypeOf(SerumSmartPicture)).apply(this, arguments));\n }\n\n _createClass(SerumSmartPicture, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n className = _props.className,\n alt = _props.alt,\n horizontal = _props.horizontal,\n vertical = _props.vertical;\n\n\n var defaultUrl = createImageUrl(_extends({}, horizontal, {\n width: 1600,\n ratio: '16:9'\n }));\n\n var horizontalSourceSet = createResponsiveSrcSet(_extends({}, horizontal, {\n ratio: '16:9'\n }));\n\n var verticalSourceSet = createResponsiveSrcSet(_extends({}, vertical, {\n ratio: '3:4'\n }));\n\n return h(\n 'picture',\n { className: className },\n h('source', { media: '(min-aspect-ratio: 4/5)', srcSet: horizontalSourceSet }),\n h('source', { media: '(max-aspect-ratio: 4/5)', srcSet: verticalSourceSet }),\n h('img', { src: defaultUrl, alt: alt })\n );\n }\n }]);\n\n return SerumSmartPicture;\n}(PureComponent);\n\nexport default SerumSmartPicture;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/** @jsx h */\n\nimport { createImageUrl } from '@nrk/serum-imagecrop-utils';\nimport { h, Component } from 'preact';\nimport { createResponsiveSrcSet } from '../../helpers';\n\nvar SerumLazyResponsivePicture = function (_Component) {\n _inherits(SerumLazyResponsivePicture, _Component);\n\n function SerumLazyResponsivePicture() {\n _classCallCheck(this, SerumLazyResponsivePicture);\n\n return _possibleConstructorReturn(this, (SerumLazyResponsivePicture.__proto__ || Object.getPrototypeOf(SerumLazyResponsivePicture)).apply(this, arguments));\n }\n\n _createClass(SerumLazyResponsivePicture, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n if (nextProps.load && !this.props.load) {\n this.loadImage();\n }\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate() {\n return false;\n }\n }, {\n key: 'loadImage',\n value: function loadImage() {\n var _this2 = this;\n\n var loaderImage = new Image();\n if (this.visibleImage.dataset) {\n loaderImage.srcset = this.visibleImage.dataset.srcset || '';\n loaderImage.sizes = this.visibleImage.sizes || '';\n }\n loaderImage.src = this.visibleImage.dataset.src;\n if (typeof loaderImage.decode === 'function') {\n // Use Image Decode API to decode image upfront if available\n // (Unsure if this works when transferring src to other image, but worth the try)\n loaderImage.decode().then(function () {\n return _this2.updateImage(loaderImage);\n });\n } else if (loaderImage.complete) {\n this.updateImage(loaderImage);\n } else {\n loaderImage.onload = function () {\n return _this2.updateImage(loaderImage);\n };\n }\n }\n }, {\n key: 'updateImage',\n value: function updateImage(loaderImage) {\n var _this3 = this;\n\n requestAnimationFrame(function () {\n _this3.visibleImage.src = loaderImage.currentSrc || loaderImage.src;\n _this3.visibleImage.style.filter = 'blur(0)';\n });\n }\n }, {\n key: 'render',\n value: function render() {\n var _this4 = this;\n\n var _props = this.props,\n className = _props.className,\n alt = _props.alt,\n id = _props.id,\n _props$quality = _props.quality,\n quality = _props$quality === undefined ? 0.6 : _props$quality,\n _props$ratio = _props.ratio,\n ratio = _props$ratio === undefined ? '16:9' : _props$ratio,\n sizes = _props.sizes;\n\n\n var placeholderSrc = createImageUrl({ id: id, width: 100, quality: 0.6, ratio: ratio });\n\n var defaultUrl = createImageUrl({ id: id, width: 1600, quality: quality, ratio: ratio });\n\n var sourceSet = createResponsiveSrcSet({ id: id, quality: quality, ratio: ratio });\n\n return h(\n 'picture',\n { className: className, style: { display: 'block', overflow: 'hidden' } },\n h('img', {\n src: placeholderSrc,\n alt: alt,\n 'data-src': defaultUrl,\n 'data-srcset': sourceSet,\n style: { width: '100%', filter: 'blur(10px)', transition: 'filter 500ms' },\n sizes: sizes,\n ref: function ref(elm) {\n return _this4.visibleImage = elm;\n }\n })\n );\n }\n }]);\n\n return SerumLazyResponsivePicture;\n}(Component);\n\nexport default SerumLazyResponsivePicture;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// @jsx h\n\nimport { bem } from '@nrk/dh-utils';\nimport { h } from 'preact';\nimport PureComponent from '../lib/preact-pure-component';\nvar style = {\n 'slideshow': 'dhfc-1_0_0-beta_28-slideshow',\n 'slideshow__slide': 'dhfc-1_0_0-beta_28-slideshow__slide',\n 'slideshow__slide--stacked': 'dhfc-1_0_0-beta_28-slideshow__slide--stacked',\n 'slideshow__slide--visible': 'dhfc-1_0_0-beta_28-slideshow__slide--visible',\n 'slideshow__slide--active': 'dhfc-1_0_0-beta_28-slideshow__slide--active'\n};\n\nvar Slide = function (_PureComponent) {\n _inherits(Slide, _PureComponent);\n\n function Slide() {\n _classCallCheck(this, Slide);\n\n return _possibleConstructorReturn(this, (Slide.__proto__ || Object.getPrototypeOf(Slide)).apply(this, arguments));\n }\n\n _createClass(Slide, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n active = _props.active,\n children = _props.children,\n stacked = _props.stacked,\n visible = _props.visible;\n\n var className = '' + bem(style.slideshow__slide, stacked && 'stacked', visible && 'visible', active && 'active') + (this.props.className ? ' ' + this.props.className : '');\n\n return h(\n 'div',\n { className: className },\n children\n );\n }\n }]);\n\n return Slide;\n}(PureComponent);\n\nexport default Slide;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// @jsx h\n\nimport { h } from 'preact';\nimport PureComponent from '../lib/preact-pure-component';\nvar style = {\n 'slideshow': 'dhfc-1_0_0-beta_28-slideshow',\n 'slideshow__slide': 'dhfc-1_0_0-beta_28-slideshow__slide',\n 'slideshow__slide--stacked': 'dhfc-1_0_0-beta_28-slideshow__slide--stacked',\n 'slideshow__slide--visible': 'dhfc-1_0_0-beta_28-slideshow__slide--visible',\n 'slideshow__slide--active': 'dhfc-1_0_0-beta_28-slideshow__slide--active'\n};\n\nvar Slideshow = function (_PureComponent) {\n _inherits(Slideshow, _PureComponent);\n\n function Slideshow() {\n _classCallCheck(this, Slideshow);\n\n return _possibleConstructorReturn(this, (Slideshow.__proto__ || Object.getPrototypeOf(Slideshow)).apply(this, arguments));\n }\n\n _createClass(Slideshow, [{\n key: 'render',\n value: function render() {\n var _props = this.props,\n children = _props.children,\n viewport = _props.viewport;\n\n var activeIndex = this.props.activeIndex || 0;\n var className = '' + style.slideshow + (this.props.className ? ' ' + this.props.className : '');\n\n var inlineStyle = {};\n\n if (viewport && viewport.height > -1) {\n inlineStyle.height = viewport.height + 'px';\n }\n\n return h(\n 'div',\n {\n className: className,\n style: inlineStyle,\n 'data-active-index': String(activeIndex)\n },\n children.map(function (child, idx) {\n if (idx <= activeIndex) {\n child.attributes.stacked = true;\n }\n\n if (idx >= activeIndex - 1 && idx <= activeIndex + 1) {\n child.attributes.visible = true;\n }\n\n child.attributes.active = idx === activeIndex;\n\n return child;\n })\n );\n }\n }]);\n\n return Slideshow;\n}(PureComponent);\n\nexport default Slideshow;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// @jsx h\n\nimport { bem } from '@nrk/dh-utils';\nimport { h } from 'preact';\nimport PureComponent from '../../lib/preact-pure-component';\nimport Video from '../Video';\nvar style = {\n 'smartVideo': 'dhfc-1_0_0-beta_28-smartVideo',\n 'smartVideo__720p': 'dhfc-1_0_0-beta_28-smartVideo__720p',\n 'smartVideo--horizontal': 'dhfc-1_0_0-beta_28-smartVideo--horizontal',\n 'smartVideo--1080p': 'dhfc-1_0_0-beta_28-smartVideo--1080p',\n 'smartVideo__960p': 'dhfc-1_0_0-beta_28-smartVideo__960p',\n 'smartVideo__1080p': 'dhfc-1_0_0-beta_28-smartVideo__1080p'\n};\n\n\nvar THRESHOLD_1080P = 960;\nvar THRESHOLD_HORIZONTAL = 2 / 3;\n\nvar SmartVideo = function (_PureComponent) {\n _inherits(SmartVideo, _PureComponent);\n\n function SmartVideo() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, SmartVideo);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = SmartVideo.__proto__ || Object.getPrototypeOf(SmartVideo)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n time: 0\n }, _this.handleTimeupdate = function (time) {\n var onTimeupdate = _this.props.onTimeupdate;\n\n\n _this.setState({ time: time });\n\n if (onTimeupdate) {\n onTimeupdate(time);\n }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(SmartVideo, [{\n key: 'componentDidUpdate',\n value: function componentDidUpdate(prevProps) {\n var prevIsHorizontal = prevProps.viewport.width / prevProps.viewport.height >= THRESHOLD_HORIZONTAL;\n var isHorizontal = this.props.viewport.width / this.props.viewport.height >= THRESHOLD_HORIZONTAL;\n\n var prevIs1080p = prevProps.viewport.width >= THRESHOLD_1080P;\n var is1080p = this.props.viewport.width >= THRESHOLD_1080P;\n\n if (prevIsHorizontal !== isHorizontal || is1080p !== prevIs1080p) {\n this.seek(this.state.time);\n }\n }\n }, {\n key: 'seek',\n value: function seek(time) {\n var viewport = this.props.viewport;\n\n var isHorizontal = viewport.width / viewport.height >= THRESHOLD_HORIZONTAL;\n var is1080p = viewport.width >= THRESHOLD_1080P;\n\n if (isHorizontal) {\n if (is1080p) {\n this.resolution1080p.seek(time);\n } else {\n this.resolution720p.seek(time);\n }\n } else {\n this.resolution960p.seek(time);\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n playing = _props.playing,\n resolution720p = _props.resolution720p,\n resolution960p = _props.resolution960p,\n resolution1080p = _props.resolution1080p,\n viewport = _props.viewport,\n restProps = _objectWithoutProperties(_props, ['playing', 'resolution720p', 'resolution960p', 'resolution1080p', 'viewport']);\n\n if (!resolution720p) {\n throw new Error('Missing `resolution720p` property');\n }\n\n if (!resolution960p) {\n throw new Error('Missing `resolution960p` property');\n }\n\n if (!resolution1080p) {\n throw new Error('Missing `resolution1080p` property');\n }\n\n var isValidViewport = viewport.width > -1 && viewport.height > -1;\n var isHorizontal = viewport.width / viewport.height >= THRESHOLD_HORIZONTAL;\n var is1080p = isHorizontal && viewport.width >= THRESHOLD_1080P;\n var className = '' + bem(style.smartVideo, {\n '1080p': is1080p,\n horizontal: isHorizontal\n }) + (this.props.className ? ' ' + this.props.className : '');\n\n return h(\n 'div',\n { className: className },\n h(Video, _extends({}, resolution720p, restProps, {\n className: style.smartVideo__720p,\n playing: isValidViewport && isHorizontal && !is1080p && playing,\n onTimeupdate: this.handleTimeupdate,\n ref: function ref(resolution720p) {\n return _this2.resolution720p = resolution720p;\n }\n })),\n h(Video, _extends({}, resolution960p, restProps, {\n className: style.smartVideo__960p,\n playing: isValidViewport && !isHorizontal && !is1080p && playing,\n onTimeupdate: this.handleTimeupdate,\n ref: function ref(resolution960p) {\n return _this2.resolution960p = resolution960p;\n }\n })),\n h(Video, _extends({}, resolution1080p, restProps, {\n className: style.smartVideo__1080p,\n playing: isValidViewport && isHorizontal && is1080p && playing,\n onTimeupdate: this.handleTimeupdate,\n ref: function ref(resolution1080p) {\n return _this2.resolution1080p = resolution1080p;\n }\n }))\n );\n }\n }]);\n\n return SmartVideo;\n}(PureComponent);\n\nexport default SmartVideo;","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// @jsx h\n\nimport { h } from 'preact';\nimport PureComponent from '../../lib/preact-pure-component';\nvar style = {\n 'scrubber': 'dhfc-1_0_0-beta_28-scrubber',\n 'scrubber__bgBar': 'dhfc-1_0_0-beta_28-scrubber__bgBar',\n 'scrubber__bufferedBar': 'dhfc-1_0_0-beta_28-scrubber__bufferedBar',\n 'scrubber__playedBar': 'dhfc-1_0_0-beta_28-scrubber__playedBar'\n};\n\nvar Scrubber = function (_PureComponent) {\n _inherits(Scrubber, _PureComponent);\n\n function Scrubber() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, Scrubber);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Scrubber.__proto__ || Object.getPrototypeOf(Scrubber)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n left: 0,\n width: 0,\n isScrubbing: false,\n position: null\n }, _this.handleKeyDown = function (evt) {\n var _this$props = _this.props,\n duration = _this$props.duration,\n time = _this$props.time,\n onPositionUpdate = _this$props.onPositionUpdate;\n\n\n if (onPositionUpdate) {\n var nextTime = time;\n\n switch (evt.key) {\n case 'ArrowLeft':\n nextTime -= 1;\n break;\n case 'ArrowRight':\n nextTime += 1;\n break;\n }\n\n onPositionUpdate(Math.max(Math.min(nextTime / duration, 1), 0));\n }\n }, _this.handleMouseDown = function (evt) {\n evt.preventDefault();\n _this.focus();\n _this.start(evt.pageX);\n _this.elm.addEventListener('mousemove', _this.handleMouseMove);\n window.addEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleMouseMove = function (evt) {\n _this.move(evt.pageX);\n }, _this.handleMouseUp = function (evt) {\n _this.focus();\n _this.end();\n _this.elm.removeEventListener('mousemove', _this.handleMouseMove);\n window.removeEventListener('mouseup', _this.handleMouseUp);\n }, _this.handleResize = function () {\n var rect = _this.bgElm.getBoundingClientRect();\n\n _this.setState({\n left: Math.floor(rect.left),\n width: rect.width\n });\n }, _this.handleTouchStart = function (evt) {\n if (evt.touches.length === 1) {\n evt.preventDefault();\n _this.focus();\n _this.start(evt.touches[0].clientX);\n _this.elm.addEventListener('touchmove', _this.handleTouchMove);\n window.addEventListener('touchend', _this.handleTouchEnd);\n }\n }, _this.handleTouchMove = function (evt) {\n if (evt.touches.length === 1) {\n _this.move(evt.touches[0].clientX);\n }\n }, _this.handleTouchEnd = function (evt) {\n _this.focus();\n _this.end();\n _this.elm.removeEventListener('touchmove', _this.handleTouchMove);\n window.removeEventListener('touchend', _this.handleTouchEnd);\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(Scrubber, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n if (this.props.onPositionUpdate) {\n this.elm.addEventListener('keydown', this.handleKeyDown);\n this.elm.addEventListener('mousedown', this.handleMouseDown);\n this.elm.addEventListener('touchstart', this.handleTouchStart);\n window.addEventListener('resize', this.handleResize);\n this.handleResize();\n }\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n if (this.props.onPositionUpdate) {\n this.elm.removeEventListener('keydown', this.handleKeyDown);\n this.elm.removeEventListener('mousedown', this.handleMouseDown);\n this.elm.removeEventListener('touchstart', this.handleTouchStart);\n window.removeEventListener('resize', this.handleResize);\n }\n }\n }, {\n key: 'focus',\n value: function focus() {\n this.handleElm.focus();\n }\n }, {\n key: 'start',\n value: function start(clientX) {\n if (this.positionTimeout) {\n clearTimeout(this.positionTimeout);\n }\n\n this.setState({\n position: (clientX - this.state.left) / this.state.width,\n isScrubbing: true\n });\n }\n }, {\n key: 'move',\n value: function move(clientX) {\n this.setState({\n position: Math.max(Math.min((clientX - this.state.left) / this.state.width, 1), 0)\n });\n }\n }, {\n key: 'end',\n value: function end() {\n var _this2 = this;\n\n if (this.props.onPositionUpdate && this.state.position !== null) {\n this.props.onPositionUpdate(this.state.position);\n }\n\n this.setState({\n isScrubbing: false\n });\n\n this.positionTimeout = setTimeout(function () {\n _this2.setState({\n position: null\n });\n }, 350);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var _props = this.props,\n duration = _props.duration,\n time = _props.time;\n\n var className = '' + style.scrubber + (this.props.className ? ' ' + this.props.className : '');\n var position = this.state.position !== null ? this.state.position : time / duration;\n\n return h(\n 'div',\n { className: className, ref: function ref(elm) {\n return _this3.elm = elm;\n } },\n h('div', {\n className: style.scrubber__bgBar,\n ref: function ref(bgElm) {\n return _this3.bgElm = bgElm;\n }\n }),\n h('div', { className: style.scrubber__bufferedBar }),\n h('div', {\n className: style.scrubber__playedBar,\n style: { width: position * 100 + '%' }\n }),\n h('button', {\n ref: function ref(handleElm) {\n return _this3.handleElm = handleElm;\n },\n role: 'slider',\n 'aria-valuemin': '0',\n 'aria-valuemax': duration * 1000,\n 'aria-valuenow': time * 1000,\n style: { left: position * 100 + '%' }\n })\n );\n }\n }]);\n\n return Scrubber;\n}(PureComponent);\n\nexport default Scrubber;","// @jsx h\n\nimport { bem } from '@nrk/dh-utils';\nimport { h } from 'preact';\nvar style = {\n 'togglePlayButton': 'dhfc-1_0_0-beta_28-togglePlayButton',\n 'togglePlayButton__pauseIcon': 'dhfc-1_0_0-beta_28-togglePlayButton__pauseIcon',\n 'togglePlayButton--playing': 'dhfc-1_0_0-beta_28-togglePlayButton--playing',\n 'togglePlayButton__playIcon': 'dhfc-1_0_0-beta_28-togglePlayButton__playIcon'\n};\n\n\nexport default function TogglePlayButton(props) {\n var playing = props.playing;\n\n var className = '' + bem(style.togglePlayButton, playing && 'playing') + (props.className ? ' ' + props.className : '');\n\n return h(\n 'button',\n { className: className, onClick: props.onClick },\n h(\n 'span',\n { className: 'nrk-sr' },\n playing ? 'Sett video på pause' : 'Spill av video'\n ),\n h('svg', {\n className: style.togglePlayButton__pauseIcon,\n 'aria-hidden': 'true',\n dangerouslySetInnerHTML: {\n __html: ''\n }\n }),\n h('svg', {\n className: style.togglePlayButton__playIcon,\n 'aria-hidden': 'true',\n dangerouslySetInnerHTML: {\n __html: ''\n }\n })\n );\n}","// @jsx h\n\nimport { bem } from '@nrk/dh-utils';\nimport { h } from 'preact';\nvar style = {\n 'toggleMuteButton': 'dhfc-1_0_0-beta_28-toggleMuteButton',\n 'toggleMuteButton__volumeIcon': 'dhfc-1_0_0-beta_28-toggleMuteButton__volumeIcon',\n 'toggleMuteButton--muted': 'dhfc-1_0_0-beta_28-toggleMuteButton--muted',\n 'toggleMuteButton__mutedIcon': 'dhfc-1_0_0-beta_28-toggleMuteButton__mutedIcon'\n};\n\n\nexport default function ToggleMuteButton(props) {\n var muted = props.muted;\n\n var className = '' + bem(style.toggleMuteButton, muted && 'muted') + (props.className ? ' ' + props.className : '');\n\n return h(\n 'button',\n { className: className, onClick: props.onClick },\n h(\n 'span',\n { className: 'nrk-sr' },\n muted ? 'Slå på lyd' : 'Slå av lyd'\n ),\n h('svg', {\n className: style.toggleMuteButton__mutedIcon,\n 'aria-hidden': 'true',\n dangerouslySetInnerHTML: {\n __html: ''\n }\n }),\n h('svg', {\n className: style.toggleMuteButton__volumeIcon,\n 'aria-hidden': 'true',\n dangerouslySetInnerHTML: {\n __html: ''\n }\n })\n );\n}","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// @jsx h\n\nimport { h } from 'preact';\nimport PureComponent from '../../lib/preact-pure-component';\nimport warn from '../../lib/warn';\nimport Scrubber from './Scrubber';\nimport TogglePlayButton from './TogglePlayButton';\nimport ToggleMuteButton from './ToggleMuteButton';\nvar style = {\n 'videoPlayer': 'dhfc-1_0_0-beta_28-videoPlayer',\n 'videoPlayer__container': 'dhfc-1_0_0-beta_28-videoPlayer__container',\n 'videoPlayer__caption': 'dhfc-1_0_0-beta_28-videoPlayer__caption',\n 'videoPlayer__controls': 'dhfc-1_0_0-beta_28-videoPlayer__controls',\n 'videoPlayer__togglePlayButton': 'dhfc-1_0_0-beta_28-videoPlayer__togglePlayButton',\n 'videoPlayer__toggleMuteButton': 'dhfc-1_0_0-beta_28-videoPlayer__toggleMuteButton'\n};\n\nvar VideoPlayer = function (_PureComponent) {\n _inherits(VideoPlayer, _PureComponent);\n\n function VideoPlayer() {\n var _ref;\n\n var _temp, _this, _ret;\n\n _classCallCheck(this, VideoPlayer);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = VideoPlayer.__proto__ || Object.getPrototypeOf(VideoPlayer)).call.apply(_ref, [this].concat(args))), _this), _this.state = {\n caption: null,\n duration: 0,\n isPlaying: false,\n time: 0\n }, _this.handleUserTogglePlay = function () {\n _this.props.onUserTogglePlay();\n }, _this.handleUserToggleMute = function () {\n _this.props.onUserToggleMute();\n }, _this.handleScrubberPositionUpdate = function (position) {\n if (_this.video) {\n _this.video.seek(_this.state.duration * position);\n } else {\n warn('[@nrk/dh-feature-components] No video reference');\n }\n }, _this.handleCaptionCueEnter = function (caption) {\n _this.setState({ caption: caption });\n }, _this.handleCaptionCueExit = function () {\n _this.setState({ caption: null });\n }, _this.handleDurationChange = function (duration) {\n _this.setState({ duration: duration });\n }, _this.handlePlay = function () {\n var onPlay = _this.props.onPlay;\n\n\n _this.setState({ isPlaying: true });\n\n if (onPlay) {\n onPlay();\n }\n }, _this.handlePause = function () {\n var onPause = _this.props.onPause;\n\n\n _this.setState({ isPlaying: false });\n\n if (onPause) {\n onPause();\n }\n }, _this.handleTimeupdate = function (time) {\n _this.setState({ time: time });\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n _createClass(VideoPlayer, [{\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var _props = this.props,\n muted = _props.muted,\n playing = _props.playing,\n video = _props.video;\n var _state = this.state,\n caption = _state.caption,\n duration = _state.duration,\n isPlaying = _state.isPlaying,\n time = _state.time;\n\n\n if (!video.attributes) {\n throw new Error('The `video` property must be a virtual node');\n }\n\n var className = '' + style.videoPlayer + (this.props.className ? ' ' + this.props.className : '');\n\n video.attributes.muted = muted;\n video.attributes.playing = playing;\n video.attributes.playsInline = true;\n video.attributes.ref = function (video) {\n return _this2.video = video;\n };\n video.attributes.onPlay = this.handlePlay;\n video.attributes.onPause = this.handlePause;\n video.attributes.onCaptionCueEnter = this.handleCaptionCueEnter;\n video.attributes.onCaptionCueExit = this.handleCaptionCueExit;\n video.attributes.onDurationChange = this.handleDurationChange;\n video.attributes.onTimeupdate = this.handleTimeupdate;\n\n return h(\n 'div',\n { className: className },\n h(\n 'div',\n { className: style.videoPlayer__container },\n video,\n caption && h(\n 'div',\n { className: style.videoPlayer__caption, 'aria-hidden': 'true' },\n caption.text.split('\\n').map(function (text, idx) {\n return h(\n 'div',\n { key: String(idx) },\n h('span', { dangerouslySetInnerHTML: { __html: text } })\n );\n })\n ),\n h(\n 'div',\n { className: style.videoPlayer__controls },\n h(TogglePlayButton, {\n className: style.videoPlayer__togglePlayButton,\n playing: isPlaying,\n onClick: this.handleUserTogglePlay\n }),\n h(Scrubber, {\n time: time,\n duration: duration,\n onPositionUpdate: this.handleScrubberPositionUpdate\n }),\n h(ToggleMuteButton, {\n className: style.videoPlayer__toggleMuteButton,\n muted: muted,\n onClick: this.handleUserToggleMute\n })\n )\n )\n );\n }\n }]);\n\n return VideoPlayer;\n}(PureComponent);\n\nexport default VideoPlayer;","export default function warn() {\n var _console;\n\n typeof window !== 'undefined' && console && console.warn && (_console = console).warn.apply(_console, arguments);\n}","var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n// @jsx h\n\nimport { toArray } from '@nrk/dh-utils';\nimport { h } from 'preact';\nimport PureComponent from '../lib/preact-pure-component';\n\nvar ViewportIntersections = function (_PureComponent) {\n _inherits(ViewportIntersections, _PureComponent);\n\n function ViewportIntersections(props) {\n _classCallCheck(this, ViewportIntersections);\n\n var _this = _possibleConstructorReturn(this, (ViewportIntersections.__proto__ || Object.getPrototypeOf(ViewportIntersections)).call(this));\n\n _this.state = {\n intersections: props.children.map(function (child, idx) {\n return {\n isIntersecting: false,\n ratio: null\n };\n })\n };\n return _this;\n }\n\n _createClass(ViewportIntersections, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n var _this2 = this;\n\n var _props = this.props,\n onChange = _props.onChange,\n onEnter = _props.onEnter,\n onLeave = _props.onLeave,\n rootMargin = _props.rootMargin,\n threshold = _props.threshold,\n root = _props.root;\n\n var childNodes = toArray(this.elm.childNodes);\n\n this.intersectionObserver = new IntersectionObserver(function (entries) {\n var intersections = _this2.state.intersections.slice(0);\n\n entries.forEach(function (entry) {\n var idx = childNodes.indexOf(entry.target);\n var prevIntersection = intersections[idx];\n\n intersections.splice(idx, 1, {\n isIntersecting: entry.isIntersecting,\n ratio: entry.intersectionRatio\n });\n\n if (onEnter && !prevIntersection.isIntersecting && entry.isIntersecting) {\n onEnter(entry, idx);\n }\n\n if (onLeave && prevIntersection.isIntersecting && !entry.isIntersecting) {\n onLeave(entry, idx);\n }\n });\n\n _this2.setState({ intersections: intersections });\n\n if (onChange) {\n onChange(intersections);\n }\n }, {\n root: root === 'self' ? this.elm : root,\n rootMargin: rootMargin || '0px 0px 0px 0px',\n threshold: threshold || 1.0\n });\n\n childNodes.forEach(function (childElm) {\n return _this2.intersectionObserver.observe(childElm);\n });\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.intersectionObserver.disconnect();\n }\n }, {\n key: 'render',\n value: function render() {\n var _this3 = this;\n\n var _props2 = this.props,\n className = _props2.className,\n children = _props2.children,\n style = _props2.style;\n\n\n return h(\n 'div',\n { ref: function ref(elm) {\n return _this3.elm = elm;\n }, className: className, style: style },\n children\n );\n }\n }]);\n\n return ViewportIntersections;\n}(PureComponent);\n\nexport default ViewportIntersections;","import * as preact from 'preact'\nconst { h, Component } = preact\nimport * as styles from './style.css'\nimport { Paragraph } from '@nrk/dh-feature-components'\nimport classNames from 'classnames'\nimport PureComponent from '../../../lib/preact-pure-component'\n\ninterface Props {\n text?: string\n id: string\n style?: string\n active: boolean\n source?: string\n preload: boolean\n backgroundType: string\n shadowColor: string\n noShadow: boolean\n}\n\nexport class Text extends PureComponent {\n shadowMaker(shadowColor: string) {\n const color = shadowColor || '0, 0, 0'\n const alphaFrom = 0\n const alphaTo = 0.6\n const diff = alphaFrom - alphaTo\n const gradient = `linear-gradient(rgba(${color}, ${alphaFrom}) 0%,\n rgba(${color}, ${alphaFrom - diff * 0.85}) 32.500%,\n rgba(${color}, ${alphaFrom - diff * 0.925}) 37.750%,\n rgba(${color}, ${alphaFrom - diff * 0.963}) 41.425%,\n rgba(${color}, ${alphaFrom - diff * 0.981}) 44.000%,\n rgba(${color}, ${alphaTo}) 50%,\n rgba(${color}, ${alphaFrom - diff * 0.981}) ${100 - 44.0}%,\n rgba(${color}, ${alphaFrom - diff * 0.963}) ${100 - 41.425}%,\n rgba(${color}, ${alphaFrom - diff * 0.925}) ${100 - 37.75}%,\n rgba(${color}, ${alphaFrom - diff * 0.85}) ${100 - 32.5}%,\n rgba(${color}, ${alphaFrom - diff * 0.7}) ${100 - 25.0}%,\n rgba(${color}, ${alphaFrom}) 100%\n )`\n\n return gradient\n }\n\n getShadowStyle = () => {\n if (typeof window !== 'undefined' && window.matchMedia('(max-aspect-ratio: 1/1) and (max-width: 750px)').matches) {\n const gradientShadow = this.shadowMaker(this.props.shadowColor)\n return {\n backgroundImage: gradientShadow,\n backgroundColor: 'transparent'\n }\n }\n return {\n backgroundColor: `rgba(${this.props.shadowColor}, 0.6)`,\n backgroundImage: 'none'\n }\n }\n\n render() {\n const { style, preload, noShadow, backgroundType, shadowColor, text } = this.props\n\n const classNameWrapper = classNames(styles.textwrapper, {\n [styles.loaded]: preload && backgroundType !== 'black',\n [styles.prologue]: style && style.indexOf('prologue') > -1,\n [styles.center]: style && style.indexOf('center') > -1,\n [styles.green]: style && style.indexOf('green') > -1,\n [styles.nomargintop]: style && style.indexOf('nomargintop') > -1\n })\n\n const classNameText = classNames(styles.text, {\n [styles.textLoaded]: preload\n })\n\n const classNameTextShadow = classNames({\n [styles.textShadow]: !noShadow\n })\n\n const noPrologueDesktopShadow =\n style &&\n style.indexOf('prologue') > -1 &&\n typeof window !== 'undefined' &&\n window.matchMedia('(min-width: 750px)').matches\n const shadowStyle = preload && shadowColor && !noShadow && !noPrologueDesktopShadow ? this.getShadowStyle() : null\n\n return (\n
\n
\n \n
\n )\n }\n}\n","var hasSupportCache = void 0;\n\nfunction testEventPassiveListener(callback) {\n if (hasSupportCache !== undefined) {\n callback(hasSupportCache);\n return;\n }\n\n hasSupportCache = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n get: function get() {\n hasSupportCache = true;\n }\n });\n\n window.addEventListener('test', null, opts);\n } catch (e) {}\n\n callback(hasSupportCache);\n}\n\nfunction testJs(callback) {\n callback(true);\n}\n\nfunction testJs$1(callback) {\n var el = document.createElement('img');\n\n callback(el.style.objectFit !== undefined);\n}\n\nfunction testPositionSticky(callback) {\n var el = document.createElement('a');\n\n el.style.cssText = 'position: sticky; position: -webkit-sticky; position: -ms-sticky;';\n\n callback(el.style.position.indexOf('sticky') !== -1);\n}\n\nvar videoAutoPlayCache = null;\n\nfunction testVideoAutoPlay(callback) {\n if (typeof window === 'undefined') {\n return callback(false);\n }\n\n if (videoAutoPlayCache !== null) {\n return callback(videoAutoPlayCache);\n }\n\n var videoElm = document.createElement('video');\n\n var isPlaying = false;\n\n videoElm.setAttribute('autoplay', '');\n videoElm.setAttribute('muted', '');\n videoElm.setAttribute('webkit-playsinline', 'webkit-playsinline');\n videoElm.setAttribute('playsinline', 'playsinline');\n\n try {\n if (videoElm.canPlayType('video/ogg')) {\n videoElm.src = 'data:video/ogg;base64,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';\n } else if (videoElm.canPlayType('video/mp4')) {\n videoElm.src = 'data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAAAs1tZGF0AAACrgYF//+q3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0OCByMjYwMSBhMGNkN2QzIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNSAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTEgbG9va2FoZWFkX3RocmVhZHM9MSBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxhY2VkPTAgYmx1cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0zIGJfcHlyYW1pZD0yIGJfYWRhcHQ9MSBiX2JpYXM9MCBkaXJlY3Q9MSB3ZWlnaHRiPTEgb3Blbl9nb3A9MCB3ZWlnaHRwPTIga2V5aW50PTI1MCBrZXlpbnRfbWluPTEwIHNjZW5lY3V0PTQwIGludHJhX3JlZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAuNjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAD2WIhAA3//728P4FNjuZQQAAAu5tb292AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAAZAABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAACGHRyYWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAZAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAgAAAAIAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAAGQAAAAAAAEAAAAAAZBtZGlhAAAAIG1kaGQAAAAAAAAAAAAAAAAAACgAAAAEAFXEAAAAAAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAAAFZpZGVvSGFuZGxlcgAAAAE7bWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJlZgAAAAAAAAABAAAADHVybCAAAAABAAAA+3N0YmwAAACXc3RzZAAAAAAAAAABAAAAh2F2YzEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAgACAEgAAABIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY//8AAAAxYXZjQwFkAAr/4QAYZ2QACqzZX4iIhAAAAwAEAAADAFA8SJZYAQAGaOvjyyLAAAAAGHN0dHMAAAAAAAAAAQAAAAEAAAQAAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAABAAAAAQAAABRzdHN6AAAAAAAAAsUAAAABAAAAFHN0Y28AAAAAAAAAAQAAADAAAABidWR0YQAAAFptZXRhAAAAAAAAACFoZGxyAAAAAAAAAABtZGlyYXBwbAAAAAAAAAAAAAAAAC1pbHN0AAAAJal0b28AAAAdZGF0YQAAAAEAAAAATGF2ZjU2LjQwLjEwMQ==';\n } else {\n return callback(false);\n }\n } catch (_) {\n return callback(false);\n }\n\n videoElm.load();\n var playPromise = videoElm.play();\n\n if (playPromise) {\n playPromise.catch(function (e) {\n // Do nothing\n });\n }\n\n videoElm.oncanplay = function () {\n videoAutoPlayCache = isPlaying;\n callback(videoAutoPlayCache);\n };\n\n videoElm.onplay = function () {\n isPlaying = true;\n };\n}\n\nfunction testReducedMotion(callback) {\n if (typeof window === 'undefined') {\n if (callback) {\n callback(false);\n }\n return false;\n }\n\n var test = !!window.matchMedia && window.matchMedia('(prefers-reduced-motion)').matches;\n if (callback) {\n callback(test);\n }\n return test;\n}\n\nvar index = {\n testEventPassiveListener: testEventPassiveListener,\n testJs: testJs,\n testObjectFit: testJs$1,\n testPositionSticky: testPositionSticky,\n testVideoAutoPlay: testVideoAutoPlay,\n testReducedMotion: testReducedMotion\n};\n\nexport default index;\nexport { testEventPassiveListener, testJs, testJs$1 as testObjectFit, testPositionSticky, testVideoAutoPlay, testReducedMotion };\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport * as styles from './style.css'\nimport classNames from 'classnames'\nimport PureComponent from '../../lib/preact-pure-component'\nimport { testReducedMotion } from '@nrk/feature-tests'\n\ninterface Props {\n animationData: any\n className?: string\n startFrame?: number\n stopFrame?: number\n play: boolean\n}\n\nexport class Lottie extends PureComponent {\n el?: HTMLDivElement\n lottieplayer?: any\n animation?: any\n\n componentDidMount() {\n if (typeof window !== 'undefined') {\n this.mount()\n\n if (this.props.play) {\n this.play()\n }\n }\n }\n\n componentWillUnmount() {\n if (typeof window !== 'undefined') {\n this.unmount()\n this.el = undefined\n }\n }\n\n componentDidUpdate(prevProps: Props) {\n if (typeof window !== 'undefined') {\n if (!prevProps.play && this.props.play) {\n this.play()\n } else if (prevProps.play && !this.props.play) {\n this.stop()\n }\n }\n }\n\n mount = () => {\n this.lottieplayer = require('lottie-web/build/player/lottie_light')\n this.animation = this.lottieplayer.loadAnimation({\n container: this.el,\n renderer: 'svg',\n loop: true,\n autoplay: false,\n animationData: this.props.animationData\n })\n if (this.props.loaded) {\n this.animation.addEventListener('DOMLoaded', this.props.loaded)\n }\n }\n\n unmount = () => {\n this.animation.destroy()\n this.lottieplayer = undefined\n }\n\n play = () => {\n const { startFrame, stopFrame } = this.props\n if (!testReducedMotion()) {\n if (startFrame !== undefined && stopFrame !== undefined) {\n this.animation.playSegments([startFrame, stopFrame], true)\n } else {\n this.animation.play()\n }\n }\n }\n\n stop = () => {\n this.animation.stop()\n }\n\n render() {\n return
(this.el = el)} />\n }\n}\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport PureComponent from '../../../lib/preact-pure-component'\n\nexport class Svg extends PureComponent<{}, {}> {\n render() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n }\n}\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport * as style from './style.css'\nimport { Heading, Paragraph } from '@nrk/dh-feature-components'\nimport PureComponent from '../../../lib/preact-pure-component'\nimport { Lottie } from '../../lottie'\nimport classNames from 'classnames'\nimport { Svg } from './intro_text'\n\ninterface Props {\n title: string\n lead: string\n byline: string\n id: string\n active: boolean\n preload: boolean\n}\n\ninterface State {\n loaded: boolean\n}\n\nexport class Intro extends PureComponent {\n constructor() {\n super()\n this.state = {\n loaded: false\n }\n }\n\n onDomLoaded = () => {\n this.setState({ loaded: true })\n }\n\n render() {\n const data = require('./Intro_text.json')\n const active = typeof window !== 'undefined' && this.props.active\n const wrapperClasses = classNames(style.textwrapperIntro, { [style.active]: this.state.loaded })\n const renderAnimation = typeof window !== 'undefined' && (this.props.active || this.props.preload)\n const renderSvg = !renderAnimation\n return (\n
\n

{this.props.title}

\n {renderSvg && }\n {renderAnimation && }\n \n
\n )\n }\n}\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport * as style from './style.css'\nimport { PullQuote } from '@nrk/dh-feature-components'\nimport '../../../../../node_modules/@nrk/dh-feature-components/dist/commonjs/PullQuote/index.css'\nimport PureComponent from '../../../lib/preact-pure-component'\n\ninterface Props {\n text?: string\n id: string\n style?: string\n cite?: string\n active: boolean\n preload: boolean\n}\n\nexport class Blockquote extends PureComponent {\n render() {\n return (\n
\n \n
\n )\n }\n}\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport * as style from './style.css'\nimport PureComponent from '../../../../lib/preact-pure-component'\nimport classNames from 'classnames'\nimport { Role } from '../index'\n\ninterface Props {\n role: Role\n}\n\nexport class Category extends PureComponent {\n render() {\n const { role } = this.props\n const names = role.names.map(name =>
{name.name}
)\n\n return (\n
\n

{role.text}

\n {names}\n
\n )\n }\n}\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport * as style from './style.css'\nimport { Heading, Paragraph } from '@nrk/dh-feature-components'\nimport PureComponent from '../../../lib/preact-pure-component'\nimport classNames from 'classnames'\nimport { Category } from './category'\nexport interface Role {\n text: string\n names: [{ name: string }]\n}\n\ninterface Props {\n publishedAt: string\n updatedAt?: string\n roles: Role[]\n active: boolean\n preload: boolean\n}\n\ninterface State {\n intersectionElements: any[]\n active?: number\n}\n\nexport class Byline extends PureComponent {\n render() {\n const { roles, publishedAt, updatedAt, preload } = this.props\n const mappedRoles = roles.map(role => )\n const date = new Date(publishedAt)\n\n if (preload) {\n return (\n
\n {mappedRoles}\n {`Publisert: ${date.getDate()}.${date.getMonth()}.${date.getFullYear()}`}
\n {!!updatedAt &&
{`Oppdatert: ${updatedAt}`}
}\n
\n )\n }\n return null\n }\n}\n","function isIOSSafari() {\n const ua = window.navigator.userAgent\n const iOS = !!ua.match(/iPad/i) || !!ua.match(/iPhone/i)\n const webkit = !!ua.match(/WebKit/i)\n const iOSSafari = iOS && webkit && !ua.match(/CriOS/i)\n return iOSSafari\n}\n\nexport { isIOSSafari }\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport * as style from './style.css'\nimport PureComponent from '../../../../lib/preact-pure-component'\nimport classNames from 'classnames'\n\ninterface Props {\n active: boolean\n}\n\nexport class Card extends PureComponent {\n render() {\n const classes = classNames(style.card, { [style.cardActive]: this.props.active })\n return
{this.props.children}
\n }\n}\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport * as style from './style.css'\nimport PureComponent from '../../../../lib/preact-pure-component'\nimport classNames from 'classnames'\nimport { LinkData } from '../index'\nimport { connect } from '../../../../../lib/provider'\n\ninterface Props {\n linkData: LinkData\n}\n\ninterface ConnectedProps {\n sendGaEvent: (evt: Object) => void\n}\n\nclass _Link extends PureComponent {\n click = (e, url: string) => {\n e.preventDefault()\n this.props.sendGaEvent({ action: 'linkOut', label: url })\n setTimeout(() => {\n document.location = url\n }, 50)\n }\n\n render() {\n const { image, linkData } = this.props\n\n return (\n this.click(e, linkData.href)}>\n \"\"\n\n this.click(e, linkData.href)}\n href={linkData.href}\n dangerouslySetInnerHTML={{ __html: linkData.text }}\n />\n \n )\n }\n}\n\nconst connector = connect()\nexport const Link = connector(_Link)\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport * as style from './style.css'\nimport { Heading, Paragraph } from '@nrk/dh-feature-components'\nimport PureComponent from '../../../lib/preact-pure-component'\nimport classNames from 'classnames'\nimport { isIOSSafari } from '../../../lib/isIOSSafari'\nimport { createImageUrl } from '../../../lib/serum-imagecrop'\nimport { Card } from './card'\nimport { Link } from './link'\nexport interface LinkData {\n image: string\n text: string\n href: string\n}\nexport interface image {\n imgUrl: string\n}\n\ninterface Props {\n publishedAt: string\n links: LinkData[]\n active: boolean\n preload: boolean\n addIntersectionElement: () => void\n}\n\ninterface State {\n intersectionElements: any[]\n active?: number\n}\n\nexport class LinkOut extends PureComponent {\n timing: HTMLDivElement[] = []\n intersectionObserver?: IntersectionObserver\n\n constructor() {\n super()\n this.state = {\n intersectionElements: [],\n active: undefined\n }\n }\n\n componentDidUpdate(prevProps: Props) {\n if (!prevProps.preload && this.props.preload) {\n this.mount()\n }\n if (prevProps.active && !this.props.active) {\n this.setState({ active: undefined })\n }\n }\n\n mount = () => {\n let rootMargin = isIOSSafari() ? '0px 0px 75px 0px' : '0px'\n var options = { root: null, rootMargin, threshold: [0] }\n this.intersectionObserver = new IntersectionObserver(this.handleIntersect, options)\n this.addIntersectionElements()\n this.state.intersectionElements.forEach(el => {\n if (this.intersectionObserver) {\n this.intersectionObserver.observe(el)\n }\n })\n }\n\n componentWillUnmount() {\n this.intersectionObserver ? this.intersectionObserver.disconnect() : null\n }\n\n addIntersectionElements = () => {\n this.timing.forEach(el => {\n this.addIntersectionElement(el)\n })\n }\n\n addIntersectionElement = (el: HTMLElement) => {\n this.setState({ intersectionElements: [el, ...this.state.intersectionElements] })\n }\n\n handleIntersect = (entries: IntersectionObserverEntry[]) => {\n entries.forEach(entry => {\n const id = entry.target.id\n const index = parseInt(id.substring(id.lastIndexOf('-') + 1))\n if (entry.isIntersecting && (!!!this.state.active || index > this.state.active)) {\n this.setState({ active: index })\n } else if (index === this.state.active && index !== 0) {\n this.setState({ active: index - 1 })\n } else if (index === 0 && this.state.active === 0) {\n this.setState({ active: undefined })\n }\n })\n }\n\n getTimingElements = () => {\n return [0].map((x, idx) => (\n
(this.timing[idx] = el)} />\n ))\n }\n\n render() {\n const { links, preload } = this.props\n const timingElements = this.getTimingElements()\n const mappedLinks = links.map(linkData => {\n const imgUrl = createImageUrl({ id: linkData.image, width: 400, quality: 0.6 })\n return \n })\n\n if (preload) {\n return (\n
\n
\n \n

{this.props.text}

\n
{mappedLinks}
\n
\n
\n {timingElements}\n
\n )\n }\n return null\n }\n}\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport * as style from './style.css'\nimport PureComponent from '../../../lib/preact-pure-component'\nimport { Lottie } from '../../lottie'\nimport classNames from 'classnames'\ninterface Props {\n active: boolean\n preload: boolean\n location?: string\n}\n\nexport class Map extends PureComponent {\n getData = (location?: string) => {\n if (location) {\n return require(`./locations/${location}.json`)\n }\n }\n\n render() {\n const { preload, active, location, locationText } = this.props\n const mapClasses = classNames(style.map, {\n [style.tilGamvik]: location === 'tilgamvik',\n [style.svalbard]: location === 'svalbard'\n })\n const renderLine = location !== 'tilgamvik' && location !== 'svalbard'\n\n const data = this.getData(location)\n return (\n
\n {preload || active ? (\n
\n \n {renderLine && [
,
{locationText}
]}\n
\n ) : (\n
\n )}\n
\n )\n }\n}\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport * as style from './style.css'\nimport PureComponent from '../../../lib/preact-pure-component'\nimport classNames from 'classnames'\n\ninterface Props {\n text: string\n chapter: number\n totalChapters: number\n}\n\nexport class Chapter extends PureComponent {\n render() {\n const dots = [...Array(this.props.totalChapters)].map((e, idx) => {\n const dotClass = classNames(style.dot, { [style.filledDot]: idx < this.props.chapter })\n return \n })\n return (\n
\n
{`Kapittel`}\n _\n {`${this.props.chapter}`}
\n {dots}\n

{this.props.text}

\n
\n )\n }\n}\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport * as style from './style.css'\nimport PureComponent from '../../../lib/preact-pure-component'\nimport classNames from 'classnames'\nimport { createImageUrl } from '../../../lib/serum-imagecrop'\n\ninterface Props {\n roles: Role[]\n}\n\ninterface Role {\n name: string\n role: string\n image: string\n}\n\nexport class BylineInline extends PureComponent {\n render() {\n const { roles } = this.props\n const mappedRoles = roles.map(role => {\n const imgUrl = createImageUrl({ id: role.image, width: 300, quality: 0.6 })\n return (\n
\n
\n \n
\n
\n
{role.role}
\n
{role.name}
\n
\n
\n )\n })\n return
{mappedRoles}
\n }\n}\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport * as styles from './style.css'\nimport PureComponent from '../../lib/preact-pure-component'\nimport { Timing } from './timing'\nimport { Text } from './text'\nimport { Intro } from './intro'\nimport { Blockquote } from './blockquote'\nimport { Byline } from './byline'\nimport { LinkOut } from './linkout'\nimport { Map } from './map'\nimport { Chapter } from './chapter'\nimport { BylineInline } from './bylineinline'\nimport classNames from 'classnames'\ninterface Props {\n addIntersectionElement: (el: HTMLElement) => void\n id: string\n active: boolean\n type: string\n blocks: Block[]\n style?: string\n preload: boolean\n shadowColor?: string\n noShadow: boolean\n align?: string\n}\n\ninterface Block {\n text?: string\n type: string\n title?: string\n lead?: string\n style?: string\n source?: string\n}\n\nfunction getComponentForType(type: string) {\n switch (type) {\n case 'intro-block':\n return Intro\n case 'text':\n return Text\n case 'blockquote':\n return Blockquote\n case 'byline':\n return Byline\n case 'linkout':\n return LinkOut\n case 'map':\n return Map\n case 'chapter':\n return Chapter\n case 'bylineinline':\n return BylineInline\n default:\n return Text\n }\n}\n\nexport class Foreground extends PureComponent {\n wrapper?: HTMLDivElement\n\n componentDidMount() {\n if (this.wrapper) {\n this.props.addIntersectionElement(this.wrapper)\n }\n }\n render() {\n const { id, blocks, style } = this.props\n\n const className = classNames(styles.foreground, {\n [styles.introCard]: style && style.indexOf('intro') > -1,\n [styles.lessMarginBottom]: style && style.indexOf('lessMarginBottom') > -1,\n [styles.lessMarginTop]: style && style.indexOf('lessMarginTop') > -1\n })\n\n const innerWrapper = classNames(styles.innerWrapper, {\n [styles.left]: this.props.align === 'left',\n [styles.right]: this.props.align === 'right',\n [styles.intro]: style && style.indexOf('intro') > -1\n })\n\n const mappedBlocks = blocks.map((block, idx) => {\n const { type, ...props } = block\n const noShadow = this.props.noShadow || (block.style && block.style.indexOf('noShadow') > -1)\n const Component = getComponentForType(type)\n return [\n ,\n \n ]\n })\n\n return (\n
(this.wrapper = el)}>\n
{mappedBlocks}
\n
\n )\n }\n}\n","export function isIe() {\n if (typeof window !== 'undefined') {\n const ua = window.navigator.userAgent\n return /MSIE|Trident/.test(ua)\n }\n}\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport * as style from './style.css'\nimport { createImageUrl } from '../../../lib/serum-imagecrop'\nimport PureComponent from '../../../lib/preact-pure-component'\nimport * as classNames from 'classnames'\nimport { isIe } from '../../../lib/isIe'\ninterface Props {\n polopolyId?: string\n polopolyIdVertical?: string\n fadeInFrom?: string\n fadeOutTo?: string\n altText?: string\n quality?: string\n photographer?: string\n style?: string\n active: boolean\n fadeClasses: string\n}\n\ninterface State {\n style: any\n}\n\nexport class Image extends PureComponent {\n timingIn: number\n timingOut: number\n delayIn: number\n constructor(props: Props) {\n super()\n if (props.style && props.style.indexOf('fastTransitionIn') > -1) {\n this.timingIn = 0.7\n this.delayIn = 0.5\n } else {\n this.delayIn = 1\n this.timingIn = 1\n }\n if (props.style && props.style.indexOf('fastTransitionOut') > -1) {\n this.timingOut = 0.7\n this.delayIn = 0.5\n } else {\n this.delayIn = 1\n this.timingOut = 1.2\n }\n if (props.fadeInFrom) {\n this.state = { style: { opacity: 0, transition: `opacity ${this.timingIn}s ease-out ${this.delayIn}` } }\n }\n if (props.fadeOutTo) {\n this.state = { style: { opacity: 1, transition: `opacity ${this.timingOut}s ease-in` } }\n }\n }\n\n componentDidMount() {\n if (this.props.fadeInFrom && this.props.active) {\n this.fadeIn()\n } else if (this.props.fadeOutTo && this.props.active) {\n this.setState({ style: { opacity: 1, transition: 'opacity 0s' } })\n }\n\n if (this.props.fadeOutTo && !this.props.active) {\n this.fadeOut()\n }\n }\n\n componentDidUpdate(prevProps: Props) {\n const toActive = !prevProps.active && this.props.active\n const fromActive = prevProps.active && !this.props.active\n const { fadeInFrom, fadeOutTo } = this.props\n\n if (fadeInFrom && toActive) {\n this.fadeIn()\n } else if (fadeOutTo && toActive) {\n this.setState({ style: { opacity: 1, transition: 'opacity 0s' } })\n }\n\n if (fadeOutTo && fromActive) {\n this.fadeOut()\n }\n }\n\n fadeIn = () => {\n const style = { opacity: 1, transition: `opacity ${this.timingIn}s ease-in ${this.delayIn}` }\n this.setState({ style })\n }\n\n fadeOut = () => {\n const style = { opacity: 0, transition: `opacity ${this.timingOut}s ease-out` }\n this.setState({ style })\n }\n\n createSrcSet = (polopolyId?: string, ratio?: string) => {\n if (polopolyId) {\n const supportedWidths = [450, 900, 1280, 1920, 2400]\n return supportedWidths\n .map(width => {\n const imageUrl = createImageUrl({ id: polopolyId, width, ratio, quality: 0.6 })\n return `${imageUrl} ${width}w`\n })\n .join(', ')\n }\n }\n\n getDefaultUrl = (polopolyId?: string) => {\n if (polopolyId) {\n return createImageUrl({\n id: polopolyId,\n width: 1600,\n ratio: undefined,\n quality: 0.6\n })\n }\n }\n\n getMobileSrcSet = (polopolyId?: string, polopolyIdVertical?: string) => {\n if (polopolyIdVertical) {\n return this.createSrcSet(polopolyIdVertical)\n } else if (polopolyId) {\n return this.createSrcSet(polopolyId, '3:4')\n }\n }\n\n render() {\n const { polopolyId, polopolyIdVertical, fadeInFrom, fadeOutTo, altText, quality } = this.props\n const isClient = typeof window !== 'undefined'\n const isFirstImage = this.props.style && this.props.style.indexOf('intro') > -1\n const isIE = isIe()\n let fadeInFromElement, fadeOutToElement\n\n if (isClient && !!fadeInFrom) {\n const fadeInFromDesktopSrcSet = this.createSrcSet(fadeInFrom)\n const fadeInFromMobileSrcSet = this.getMobileSrcSet(fadeInFrom)\n fadeInFromElement = (\n
\n \n \n \n {altText}\n \n
\n )\n }\n\n if (isClient && !!fadeOutTo) {\n const fadeOutToDesktopSrcSet = this.createSrcSet(fadeOutTo)\n const fadeOutToMobileSrcSet = this.getMobileSrcSet(fadeOutTo)\n fadeOutToElement = (\n
\n \n \n \n {altText}\n \n
\n )\n }\n\n if (isClient || isFirstImage) {\n const desktopSrcSetMain = this.createSrcSet(polopolyId)\n const mobileSrcSetMain = this.getMobileSrcSet(polopolyId, polopolyIdVertical)\n const classes = isClient\n ? classNames(style.img, { [style.ie]: isIE, [style.ieActive]: isIE && this.props.active })\n : style.img\n return (\n
\n {!isIE && fadeInFromElement}\n {!isIE && fadeOutToElement}\n
\n \n \n \n \n \n
\n
\n )\n }\n\n return null\n }\n}\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport PureComponent from './preact-pure-component'\nimport { testReducedMotion } from '@nrk/feature-tests'\n\ninterface Props {\n playing: boolean\n className?: string\n sources: {\n mp4: string\n }\n loop?: boolean\n playsInline?: boolean\n muted?: boolean\n size: {\n height: number\n width: number\n }\n poster: string\n}\n\nexport class HTML5Video extends PureComponent {\n elm?: HTMLVideoElement\n playPromise?: Promise\n\n componentDidMount() {\n const { playing } = this.props\n\n if (this.elm && playing) {\n this.play()\n }\n }\n\n componentWillUnmount() {\n this.pause()\n this.elm = undefined\n this.playPromise = undefined\n }\n\n componentDidUpdate(prevProps: Props) {\n if (this.elm) {\n if (!prevProps.playing && this.props.playing) {\n this.play()\n } else if (prevProps.playing && !this.props.playing) {\n // this.pause()\n }\n }\n }\n\n play = () => {\n if (this.elm && !testReducedMotion()) {\n const playPromise = this.elm.play()\n if (playPromise) {\n this.playPromise = playPromise.then(() => {}).catch(error => {})\n }\n }\n }\n\n pause = () => {\n if (this.elm) {\n if (this.playPromise) {\n this.playPromise.then(() => {\n this.elm && this.elm.pause()\n })\n } else {\n this.elm.pause()\n }\n }\n }\n\n render() {\n const { sources, size, className, poster } = this.props\n const { height, width } = size\n return (\n (this.elm = elm)}\n src={sources.mp4}\n type=\"video/mp4\"\n poster={poster}\n >\n Nettleseren din støtter ikke video.\n \n )\n }\n}\n","import { Video } from '../components/types'\n\nconst profiles = {\n '16-9-640': '640x360',\n '16-9-1280': '1280x720',\n '16-9-1920': '1920x1080',\n '9-16-960': '540x960',\n '9-16-1920': '1080x1920',\n '3-2-1620': '1620x1080',\n '3-2-1080': '1080x720'\n}\n\nexport function getVideo(video?: Video[]) {\n if (video && typeof window !== 'undefined') {\n if (\n window.matchMedia('(max-aspect-ratio: 1/1) and (max-width: 750px)').matches &&\n video.find(video => video.profile === profiles['9-16-960'])\n ) {\n // console.log('9-16-1920')\n return video.find(video => video.profile === profiles['9-16-960'])\n }\n if (\n window.matchMedia('(min-width: 1080px)').matches &&\n video.find(video => video.profile === profiles['3-2-1620'])\n ) {\n // console.log('3-2-1620')\n return video.find(video => video.profile === profiles['3-2-1620'])\n }\n if (\n window.matchMedia('(max-width: 1080px)').matches &&\n video.find(video => video.profile === profiles['3-2-1080'])\n ) {\n // console.log('3-2-1080')\n return video.find(video => video.profile === profiles['3-2-1080'])\n }\n // console.log('16-9-1280')\n return video.find(video => video.profile === profiles['16-9-1280'])\n }\n}\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport * as styles from './style.css'\nimport { Video as VideoProps } from '../../types'\nimport { HTML5Video } from '../../../lib/html5video'\nimport { getVideo } from '../../../lib/getVideo'\nimport PureComponent from '../../../lib/preact-pure-component'\nimport classNames from 'classnames'\ninterface Props {\n video?: VideoProps[]\n active: boolean\n style?: string\n preload: boolean\n pauseUntilVisible?: boolean\n fadeClasses: string\n}\n\nexport class Video extends PureComponent {\n shouldPlay = () => {\n const { active, preload, pauseUntilVisible } = this.props\n if (active) {\n return true\n }\n if (preload && !pauseUntilVisible) {\n return true\n }\n return false\n }\n render() {\n const video = getVideo(this.props.video)\n if (video) {\n const { style } = this.props\n const { poster, sources, size } = video\n const elementClasses = classNames(this.props.fadeClasses, styles.videoElement)\n return (\n
\n \n
\n )\n }\n return
\n }\n}\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport * as style from './style.css'\nimport PureComponent from '../../../lib/preact-pure-component'\nimport * as classNames from 'classnames'\n\ninterface Props {\n active?: boolean\n style?: string\n fadeClasses: string\n}\n\nexport class Black extends PureComponent {\n render() {\n const classes = classNames(style.black, this.props.fadeClasses, {\n [style.solidColor]: this.props.style && this.props.style.indexOf('solidColor') > -1\n })\n return
\n }\n}\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport * as styles from './style.css'\nimport PureComponent from '../../../lib/preact-pure-component'\n\ninterface Props {\n photographer: string\n type: string\n style?: string\n}\n\nexport class PhotoCredit extends PureComponent {\n render() {\n const { type, photographer } = this.props\n const mediaType = type === 'video' ? 'Video' : 'Foto'\n return (\n
\n
{`${mediaType}: ${photographer}`}
\n
\n )\n }\n}\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport classNames from 'classnames'\nimport * as styles from './style.css'\nimport { Image } from './image'\nimport { Video } from './video'\nimport { Black } from './black'\nimport { Section } from '../types'\nimport { PhotoCredit } from './photocredit'\nimport PureComponent from '../../lib/preact-pure-component'\nimport { connect } from '../../../lib/provider'\nimport { isIe } from '../../lib/isIe'\nimport { testReducedMotion } from '@nrk/feature-tests'\ninterface Props {\n section: Section\n active: boolean\n preload: boolean\n fadeUpDelay: boolean\n}\n\ninterface ConnectedProps {\n sendGaEvent: (evt: Object) => void\n}\n\nfunction getComponentForType(type: string) {\n switch (type) {\n case 'image':\n return Image\n case 'video':\n return Video\n case 'black':\n default:\n return Black\n }\n}\n\nclass _Background extends PureComponent {\n componentDidUpdate(prevProps: Props) {\n if (!prevProps.active && this.props.active) {\n this.props.sendGaEvent({ action: 'readChapter', label: this.props.section.id })\n }\n }\n\n render() {\n const shouldRender = this.props.active || this.props.preload\n if (!shouldRender) {\n return null\n }\n const { style, type, props } = this.props.section\n const Component = getComponentForType(type)\n const photographer = props && props.photographer ? props.photographer : undefined\n const shouldZoom =\n style && style.indexOf('zoomIn') > -1 && typeof window !== 'undefined' && !isIe() && !testReducedMotion()\n const wrapperClasses = classNames(styles.background, {\n [styles.zoomIn]: shouldZoom\n })\n const fadeClasses = classNames(styles.backgroundElement, {\n [styles.active]: this.props.active,\n [styles.delayIn]: this.props.fadeUpDelay,\n [styles.delayOut]: props && !!props.fadeOutTo,\n [styles.fastDelayIn]: style && style.indexOf('fastTransitionIn') > -1,\n [styles.fastDelayOut]: style && style.indexOf('fastTransitionOut') > -1,\n [styles.slowOutFade]: style && style.indexOf('slowOutFade') > -1,\n [styles.slowInFade]: style && style.indexOf('slowInFade') > -1,\n [styles.klimakartDelayIn]: style && style.indexOf('klimakartDelayIn') > -1\n })\n return (\n
\n \n {style && style.indexOf('zoomIn') > -1 &&
}\n {photographer && this.props.active && }\n
\n )\n }\n}\n\nconst connector = connect()\nexport const Background = connector(_Background)\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport { Foreground } from '../foreground'\nimport { Background } from '../background'\nimport { Section as SectionProps } from '../types'\nimport PureComponent from '../../lib/preact-pure-component'\nimport style from './style.css'\n\ninterface Props {\n addIntersectionElement: (el: HTMLElement) => void\n section: SectionProps\n active: boolean\n preload: boolean\n backgroundFadeUpDelay?: boolean\n}\n\nexport class Section extends PureComponent {\n render() {\n const { section, addIntersectionElement, active, preload, backgroundFadeUpDelay } = this.props\n return (\n
\n \n \n
\n )\n }\n}\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport PureComponent from '../../../lib/preact-pure-component'\nimport styles from './style.css'\nimport className from 'classnames'\ninterface Props {\n onClick: () => void\n active: boolean\n}\n\nexport class ShowSourceButton extends PureComponent {\n render() {\n const buttonClassNames = className(styles.button, { [styles.buttonActive]: this.props.active })\n return (\n \n )\n }\n}\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport PureComponent from '../../../lib/preact-pure-component'\nimport styles from './style.css'\nimport { Paragraph } from '@nrk/dh-feature-components'\nimport { disableBodyScroll, enableBodyScroll, clearAllBodyScrollLocks } from 'body-scroll-lock'\n\ninterface Props {\n isOpen: boolean\n close: () => void\n content?: any\n idx?: number\n}\n\ninterface State {\n prevFocus: any\n}\n\nexport class Modal extends PureComponent {\n content?: HTMLDivElement\n modal?: HTMLDivElement\n\n componentDidMount() {\n document.addEventListener('keydown', this.handleEscClick, false)\n }\n\n componentDidUpdate(prevProps: Props) {\n if (!prevProps.isOpen && this.props.isOpen) {\n this.open()\n } else if (prevProps.isOpen && !this.props.isOpen) {\n this.close()\n }\n }\n\n componentWillUnmount() {\n clearAllBodyScrollLocks()\n this.close()\n document.removeEventListener('keydown', this.handleEscClick, false)\n }\n\n handleEscClick = (event: any) => {\n if (event.keyCode === 27) {\n this.props.close()\n }\n }\n\n open = () => {\n this.setState({ prevFocus: document.activeElement })\n disableBodyScroll(this.modal)\n }\n\n close = () => {\n clearAllBodyScrollLocks()\n if (this.state.prevFocus) {\n this.state.prevFocus.focus()\n }\n }\n\n closeOnClickOutside = (event: any) => {\n if (this.content && !this.content.contains(event.target)) {\n this.props.close()\n }\n }\n\n getIdMarkup = (id: string) => {\n const regex = /(_)/gi\n return id.replace(regex, '$1')\n }\n\n render() {\n const { content, isOpen, idx } = this.props\n if (!isOpen) {\n return null\n }\n return (\n
\n (this.modal = modal)}\n >\n
(this.content = content)}>\n \n {idx !== undefined && (\n
\n Fotnote_\n {idx + 1}\n
\n )}\n \n \n
\n
\n
\n )\n }\n}\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport PureComponent from '../../lib/preact-pure-component'\nimport { ShowSourceButton } from './show-source-button'\nimport { Modal } from './modal'\nimport { Source as SourceType } from '../types'\nimport { connect } from '../../../lib/provider'\n\ninterface Props {\n activeSection?: any\n sources?: SourceType[]\n activeSourceButtonID?: string\n}\n\ninterface ConnectedProps {\n sendGaEvent: (evt: Object) => void\n}\n\ninterface State {\n open: boolean\n}\n\nclass _Source extends PureComponent {\n constructor() {\n super()\n this.state = {\n open: false\n }\n }\n\n open = () => {\n this.props.sendGaEvent({ action: 'open modal', label: this.getActiveSectionSourceId() })\n this.setState({ open: true })\n }\n\n close = () => {\n this.setState({ open: false })\n }\n\n activeSectionContainsSource = () => {\n if (this.props.activeSection) {\n const { activeSection } = this.props\n let containsSource = false\n activeSection.blocks.forEach((block: any) => {\n if (!!block.source) {\n containsSource = true\n }\n })\n return containsSource\n }\n }\n\n getActiveSectionSourceId = () => {\n return this.props.activeSection.blocks.find(block => !!block.source).source\n }\n\n getModalContent = () => {\n if (this.props.sources) {\n const activeSectionSourceId = this.getActiveSectionSourceId()\n return this.props.sources.find(source => source.id === activeSectionSourceId)\n }\n }\n\n getIdx = () => {\n if (this.props.sources) {\n const activeSectionSourceId = this.getActiveSectionSourceId()\n return this.props.sources.findIndex(source => source.id === activeSectionSourceId)\n }\n }\n\n render() {\n if (this.activeSectionContainsSource()) {\n const { activeSection, activeSourceButtonID } = this.props\n const active = activeSection.id === activeSourceButtonID\n\n const content = this.getModalContent()\n return (\n
\n \n \n
\n )\n }\n return null\n }\n}\n\nconst connector = connect()\nexport const Source = connector(_Source)\n","import * as preact from 'preact'\nimport styles from './style.css'\nconst { h } = preact\nimport PureComponent from '../../lib/preact-pure-component'\n\nclass Logo extends PureComponent<{}, {}> {\n render() {\n return (\n \n \n \n \n \n )\n }\n}\n\nexport { Logo }\n","import * as preact from 'preact'\nconst { h, Component } = preact\nimport styles from './App.css'\nimport { connect } from '../../lib/provider'\nimport { Props as gDocProps } from './types'\nimport { Section } from './section'\nimport { Source } from './source'\nimport { Logo } from './logo'\nimport PureComponent from '../lib/preact-pure-component'\nimport { isIOSSafari } from '../lib/isIOSSafari'\ninterface Props {\n sendGaEvent: (evt: Object) => void\n}\n\ninterface State {\n activeElement?: string\n activeIdx?: number\n intersectionElements: any[]\n activeSource?: string\n activeSourceButtonID?: string\n}\n\nclass _App extends PureComponent {\n private wrapper?: Element\n private intersectionObserver?: IntersectionObserver\n\n constructor() {\n super()\n this.state = {\n activeElement: 'tittelkort-bilde',\n activeIdx: 0,\n intersectionElements: [],\n activeSourceButtonID: undefined\n }\n }\n\n componentDidMount() {\n let rootMargin = isIOSSafari() ? '0px 0px 75px 0px' : '0px'\n var options = {\n root: null,\n rootMargin,\n threshold: [0]\n }\n this.intersectionObserver = new IntersectionObserver(this.handleIntersect, options)\n this.state.intersectionElements.forEach(el => {\n if (this.intersectionObserver) {\n this.intersectionObserver.observe(el)\n }\n })\n }\n\n componentWillUnmount() {\n this.intersectionObserver ? this.intersectionObserver.disconnect() : null\n }\n\n addIntersectionElement = (el: HTMLElement) => {\n this.setState({ intersectionElements: [el, ...this.state.intersectionElements] })\n }\n\n handleBgChange = (entry: IntersectionObserverEntry) => {\n if (entry.isIntersecting) {\n const id = entry.target.id\n const backgroundId = id.substring(0, id.lastIndexOf('-'))\n const idxOfActiveElement = this.getIdxOfActiveElement(backgroundId)\n this.setState({ activeElement: backgroundId, activeIdx: idxOfActiveElement })\n }\n }\n\n handleSourceButtonActive = (entry: IntersectionObserverEntry) => {\n if (entry.isIntersecting) {\n const id = entry.target.id.substring(0, entry.target.id.indexOf('-'))\n this.setState({ activeSourceButtonID: id })\n } else {\n this.setState({ activeSourceButtonID: undefined })\n }\n }\n\n handleIntersect = (entries: IntersectionObserverEntry[]) => {\n entries.forEach(entry => {\n if (entry.target.id.indexOf('-tail') > 0) {\n this.handleSourceButtonActive(entry)\n } else {\n this.handleBgChange(entry)\n }\n })\n }\n\n setActiveSource = (activeSource?: string) => {\n this.setState({ activeSource })\n }\n\n getIdxOfActiveElement = (id: string) => {\n if (this.props.doc && this.props.doc.sections) {\n return this.props.doc.sections.findIndex(el => el.id === id)\n }\n return undefined\n }\n\n shouldPreload = (idx: number) => {\n const { activeIdx } = this.state\n if (activeIdx !== undefined && activeIdx >= 0) {\n if (activeIdx == 0 && idx < 2) {\n return true\n }\n return idx <= activeIdx + 2 && idx >= activeIdx - 2\n }\n return false\n }\n\n getActiveSection = () => {\n return this.props.doc && this.props.doc.sections && this.state.activeIdx\n ? this.props.doc.sections[this.state.activeIdx]\n : undefined\n }\n\n render() {\n const sections =\n this.props.doc && this.props.doc.sections\n ? this.props.doc.sections.map((section, idx) => {\n const active = this.state.activeElement === section.id\n const preload = this.shouldPreload(idx)\n const fadeUpDelay =\n this.props.doc &&\n this.props.doc.sections &&\n this.props.doc.sections[idx - 1] &&\n this.props.doc.sections[idx - 1].props &&\n !!this.props.doc.sections[idx - 1].props.fadeOutTo\n return (\n \n )\n })\n : undefined\n\n return (\n
\n \n
\n
(this.wrapper = el)} className={styles.app}>\n {sections}\n
\n \n
\n
\n )\n }\n}\n\nconst connector = connect()\nexport const App = connector(_App)\n","export const throttle = (func, limit) => {\n let lastFunc\n let lastRan\n return function() {\n const context = this\n const args = arguments\n if (!lastRan) {\n func.apply(context, args)\n lastRan = Date.now()\n } else {\n clearTimeout(lastFunc)\n lastFunc = setTimeout(function() {\n if (Date.now() - lastRan >= limit) {\n func.apply(context, args)\n lastRan = Date.now()\n }\n }, limit - (Date.now() - lastRan))\n }\n }\n}\n","import { throttle } from './throttle'\n\nconst defaultOpts = {\n ssrOrientation: null,\n mode: 'max'\n}\n\nexport default class ViewportHeight {\n constructor(opts = {}) {\n this.opts = { ...defaultOpts, ...opts }\n this.listeners = []\n this.orientation = this.getOrientation()\n this.value = {\n portrait: 0,\n landscape: 0\n }\n this.destroyed = false\n this.update()\n this.mounted = false\n\n this.handleUpdate = this.handleUpdate.bind(this)\n this.throttledUpdate = throttle(this.handleUpdate, 100)\n }\n mount() {\n if (typeof window !== 'undefined') {\n window.addEventListener('resize', this.throttledUpdate)\n window.addEventListener('orientationchange', this.handleUpdate)\n }\n this.mounted = true\n }\n destroy() {\n if (typeof window !== 'undefined') {\n window.removeEventListener('resize', this.throttledUpdate)\n window.removeEventListener('orientationchange', this.handleUpdate)\n }\n this.mounted = false\n }\n\n getOrientation() {\n if (typeof window !== 'undefined') {\n if (window.innerHeight > window.innerWidth) {\n return 'portrait'\n }\n return 'landscape'\n }\n return this.opts.ssrOrientation\n }\n\n handleUpdate() {\n this.update()\n }\n\n listen(fn) {\n this.listeners.push(fn)\n if (this.mounted === false) {\n this.mount()\n }\n\n return () => {\n this.listeners = this.listeners.filter(listener => listener !== fn)\n }\n }\n\n emit() {\n const vh = this.getVh()\n const height = this.getHeight()\n this.listeners.forEach(listener => listener(vh, height, this.orientation))\n }\n\n getHeight() {\n if (this.orientation) {\n return this.value[this.orientation]\n }\n return 0\n }\n\n getVh() {\n if (this.orientation) {\n return this.value[this.orientation] / 100\n }\n return 0\n }\n\n update() {\n const currentOrientation = this.orientation\n this.orientation = this.getOrientation()\n\n if (this.orientation) {\n const currentValue = this.value[this.orientation]\n const newValue = window.innerHeight\n\n if (currentOrientation !== this.orientation) {\n if (newValue > currentValue) {\n this.value[this.orientation] = newValue\n }\n this.emit()\n } else if (newValue > currentValue) {\n this.value[this.orientation] = newValue\n this.emit()\n }\n }\n }\n}\n","import * as preact from 'preact'\nconst { h, render } = preact\nimport domready from 'domready'\nimport { toArray, createUniqueId } from '@nrk/dh-utils'\nimport { createGoogleAnalyticsTracker } from '@nrk/dh-analytics-utils'\nimport { createErrorReporter } from '../lib/errorReporting'\nimport { getContextId } from '../lib/getContextId'\nimport { Provider as CustomProvider } from '../lib/provider'\nimport { App } from './components/App'\nimport * as styles from './components/App.css'\nimport { Listener, checkHasVhBug } from './lib/vh-fix/'\nconst rootElementClassName = styles.root\n;(window as any)[rootElementClassName] = (window as any)[rootElementClassName] || {}\n\nfunction init() {\n findElements(rootElementClassName).forEach((el: Element) => {\n el.id = createUniqueId()\n ;(window as any)[rootElementClassName][el.id] = true\n\n // Extract values sent from server\n const name = el.getAttribute('data-name')\n const preloadedState = el.getAttribute('data-preloaded-state')\n const preloadedStateJSON = preloadedState ? JSON.parse(preloadedState) : ''\n const errorTrackingEnabled = el.getAttribute('data-error-tracking-enabled') === 'true'\n\n // setup error reporting\n const simpleErrorReport = createErrorReporter(name ? name : '', errorTrackingEnabled)\n simpleErrorReport.listenAndCatch()\n\n // Extract metadata required to create google analytics tracker\n const gaPropertyId = el.getAttribute('data-ga-property-id')\n const metadata = el.getAttribute('data-metadata')\n const metadataJSON = metadata ? JSON.parse(metadata) : ''\n const { title, selfId, published } = metadataJSON\n\n // create google analytics tracker\n const googleAnalyticsTracker = createGoogleAnalyticsTracker({\n name: 'dh',\n gaPropertyId,\n self: {\n id: selfId,\n title,\n publishedDate: published ? new Date(published) : null\n },\n context: {\n id: getContextId(document && document.location ? document.location.href : '')\n }\n })\n\n const sendError = (message: string) => {\n simpleErrorReport.sendErrorReport({ message })\n }\n\n const sendGaEvent = (eventObj: {}) => {\n googleAnalyticsTracker.sendEvent({\n category: `dh-modul-${name}`,\n ...eventObj\n })\n }\n\n // ... and render with the exact same props as on server\n render(\n \n \n ,\n el,\n el.firstChild as Element\n )\n // Enable webpack hot-reloading\n if ((module as any).hot) {\n // Reload and re-render preact application\n ;(module as any).hot.accept('./client', () => {\n const { App } = require('./components/App')\n const { Provider: CustomProvider } = require('../lib/provider')\n render(\n \n \n ,\n el,\n el.firstChild as Element\n )\n })\n }\n })\n if (checkHasVhBug()) {\n const vhListener = new Listener()\n vhListener.listen(handleViewportUpdate)\n }\n}\n\nif (module.hot) {\n require('preact/debug')\n}\n\nfunction findElements(className: string) {\n return toArray(document.getElementsByClassName(className)).filter((el: Element) => !isInitialized(el, className))\n}\n\nfunction isInitialized(el: Element, className: string) {\n return el.id && (window as any)[className][el.id]\n}\n\nfunction handleViewportUpdate(vh: number) {\n try {\n const html = document.getElementsByTagName('html')[0]\n html.style.setProperty('--dh-vh', `${vh}px`)\n } catch (error) {\n console.error(error)\n }\n}\n\ndomready(init)\n","export function createUniqueId() {\n var len = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n\n return '' + prefix + Math.random().toString(36).substr(2, len - prefix.length);\n}","import { SimpleErrorReport } from '@nrk/dh-simple-error-report'\n\nexport function createErrorReporter(name: string, isErrorReportingEnabled: boolean) {\n return new SimpleErrorReport({\n name: name,\n url: 'https://dh.nrk.no/catch',\n dryRun: !isErrorReportingEnabled\n })\n}\n","export default function checkHasVhBug() {\n const userAgent = navigator.userAgent || navigator.vendor || (window as any).opera\n const lowerCaseUserAgent = userAgent.toLowerCase()\n if (!userAgent) return false\n\n const isAndroid = /android/.test(lowerCaseUserAgent)\n const isIos = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform)\n\n let regexp\n if (isAndroid) {\n regexp = /messenger|instagram|snapchat|nrk|firefox|opera|klar\\//\n } else if (isIos) {\n regexp = /messenger|instagram|snapchat|nrk|firefox|opera|chrome|fxios|crios/\n }\n\n return regexp && regexp.test(lowerCaseUserAgent)\n}\n"],"sourceRoot":""}