{"version":3,"sources":["../node_modules/tiny-warning/dist/tiny-warning.esm.js","../node_modules/@babel/runtime/helpers/objectSpread2.js","../node_modules/@babel/runtime/helpers/inherits.js","../node_modules/@babel/runtime/helpers/createSuper.js","../node_modules/react-native-web-linear-gradient/dist/index.js","../node_modules/lodash-es/_root.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/domhandler/lib/index.js","../node_modules/ramda/src/internal/_curry1.js","../SharedPropsProvider.tsx","../node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../src/getAlphanumFromUnicodeRange.ts","../../src/utils/codepointLength.ts","webpack:///../../src/constants.ts?da26","../../src/makeCSEngine.ts","../../src/utils/codeunitLength.ts","../../src/utils/reverseString.ts","../../src/makeCSRenderer.ts","../../src/CounterStyle.ts","../node_modules/react-share/es/utils/objectToGetParams.js","../node_modules/react-share/es/hocs/createIcon.js","../node_modules/@babel/runtime/helpers/getPrototypeOf.js","../LongCSSPropertyValidator.ts","../node_modules/ramda/src/internal/_curry2.js","../node_modules/react-share/es/ShareButton.js","../node_modules/react-share/es/hocs/createShareButton.js","../node_modules/react-native-iphone-x-helper/index.js","../node_modules/react-share/es/utils/assert.js","../HTMLContentModel.ts","../ShortMergeRequest.ts","../node_modules/@babel/runtime/helpers/get.js","../RenderersPropsProvider.tsx","../node_modules/classnames/index.js","../node_modules/react-slick/lib/utils/innerSliderUtils.js","../dom-utils.ts","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../useProfiler.ts","../node_modules/ramda/src/internal/_has.js","../useSymbolicMarkerRendererStyles.ts","../MarkedListItem.tsx","../MarkerBox.tsx","../node_modules/pako/lib/utils/common.js","../TRenderEngineProvider.tsx","../node_modules/@native-html/transient-render-engine/node_modules/domelementtype/lib/esm/index.js","../TNodeCtor.ts","../ShortCSSPropertyValidator.ts","../node_modules/ramda/src/internal/_curry3.js","../node_modules/ramda/src/pick.js","../DocumentMetadataProvider.ts","../getNativePropsForTNode.ts","../MarkedList.tsx","../node_modules/lodash-es/_nodeUtil.js","../node_modules/css-to-react-native/index.js","../index.ts","../HTMLElementModel.ts","../TBlockCtor.ts","../TStyles.ts","../node_modules/@babel/runtime/helpers/setPrototypeOf.js","../helpers.ts","../LongSizeCSSPropertyValidator.ts","../expandCSSToRN.ts","../node_modules/ramda/src/internal/_isPlaceholder.js","../node_modules/@native-html/transient-render-engine/node_modules/domutils/lib/index.js","../defaultListStyleSpecs.ts","../TChildrenRendererContext.ts","../TChildrenRenderer.tsx","../TNodeRenderer.tsx","../RenderRegistryProvider.tsx","../useNormalizedUrl.ts","../IMGRenderer.tsx","../IMGElement.tsx","../defaultInitialImageDimensions.ts","../useMarkedList.ts","../ttreeEventsContext.ts","../RenderTTree.tsx","../node_modules/stringify-entities/lib/constant/from-char-code.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/isBuffer.js","../node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../../src/utils/generateAlphabeticName.js","../../src/utils/hash.js","../../src/utils/generateComponentId.js","../../src/utils/getComponentName.js","../../src/utils/isFunction.js","../../src/utils/isPlainObject.js","../../src/utils/isStyledComponent.js","../../src/constants.js","../../src/utils/empties.js","../../src/utils/error.js","../../src/sheet/GroupedTag.js","../../src/sheet/GroupIDAllocator.js","../../src/sheet/Rehydration.js","../../src/sheet/dom.js","../../src/utils/nonce.js","../../src/sheet/Tag.js","../../src/sheet/Sheet.js","../../src/utils/stylis.js","../../src/models/StyleSheetManager.js","../../src/utils/stylisPluginInsertRule.js","../../src/models/Keyframes.js","../../src/utils/hyphenateStyleName.js","../../src/utils/flatten.js","../../src/utils/addUnitIfNeeded.js","../../src/utils/isStatelessFunction.js","../../src/vendor/postcss/warn-once.js","../../src/vendor/postcss/tokenize.js","../../src/vendor/postcss/terminal-highlight.js","../../src/vendor/postcss/css-syntax-error.js","../../src/vendor/postcss/stringifier.js","../../src/vendor/postcss/stringify.js","../../src/vendor/postcss/node.js","../../src/vendor/postcss/declaration.js","../../src/vendor/postcss/comment.js","../../src/vendor/postcss/parser.js","../../src/vendor/postcss/parse.js","../../src/vendor/postcss/container.js","../../src/vendor/postcss/at-rule.js","../../src/vendor/postcss/list.js","../../src/vendor/postcss/rule.js","../../src/vendor/postcss/warning.js","../../src/vendor/postcss/result.js","../../src/vendor/postcss/lazy-result.js","../../src/vendor/postcss/processor.js","../../src/vendor/postcss/root.js","../../src/vendor/postcss/input.js","../../src/vendor/postcss-safe-parser/safe-parser.js","../../src/models/InlineStyle.js","../../src/utils/mixinDeep.js","../../src/utils/determineTheme.js","../../src/utils/isTag.js","../../src/models/ThemeProvider.js","../../src/models/StyledNativeComponent.js","../../src/utils/interleave.js","../../src/constructors/css.js","../../src/constructors/constructWithOptions.js","../../src/hoc/withTheme.js","../../src/native/index.js","../../src/vendor/postcss-safe-parser/parse.js","../../src/utils/generateDisplayName.js","../node_modules/enquire.js/src/Util.js","webpack:///../src/index.js?a178","../node_modules/assert/assert.js","../node_modules/util/util.js","../node_modules/pako/lib/zlib/adler32.js","../node_modules/pako/lib/zlib/crc32.js","../../webpack/universalModuleDefinition","../../moment-range.js","../webpack:/webpack/bootstrap 0448466c1b97963b6919","../../~/es5-ext/object/is-value.js","../../~/es6-symbol/index.js","../webpack:/external \"moment\"","../../lib/moment-range.js","../../~/d/index.js","../../~/es5-ext/function/noop.js","../../~/es5-ext/object/assign/index.js","../../~/es5-ext/object/assign/is-implemented.js","../../~/es5-ext/object/assign/shim.js","../../~/es5-ext/object/is-callable.js","../../~/es5-ext/object/keys/index.js","../../~/es5-ext/object/keys/is-implemented.js","../../~/es5-ext/object/keys/shim.js","../../~/es5-ext/object/normalize-options.js","../../~/es5-ext/object/valid-value.js","../../~/es5-ext/string/#/contains/index.js","../../~/es5-ext/string/#/contains/is-implemented.js","../../~/es5-ext/string/#/contains/shim.js","../../~/es6-symbol/is-implemented.js","../../~/es6-symbol/is-symbol.js","../../~/es6-symbol/polyfill.js","../../~/es6-symbol/validate-symbol.js","../debugMessages.ts","../buildTREFromConfig.ts","../node_modules/domhandler/node_modules/domelementtype/lib/index.js","../node_modules/domhandler/lib/node.js","../node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","../CSSParseRun.ts","../CSSProcessedProps.ts","../emptyProps.ts","../mergeProps.ts","../GenericPropertyValidator.ts","../normalizeFontName.ts","../LongNonPercentSizeCSSPropertyValidator.ts","../LongEnumerationCSSPropertyValidator.ts","../LongForgivingCSSPropertyValidator.ts","../ShortCSSToReactNativeValidator.ts","../default.ts","../node_modules/ramda/src/compose.js","../node_modules/ramda/src/pipe.js","../node_modules/ramda/src/internal/_arity.js","../node_modules/ramda/src/internal/_isArray.js","../node_modules/ramda/src/internal/_isString.js","../node_modules/ramda/src/internal/_checkForMethod.js","../TPhrasingCtor.ts","../TTextCtor.ts","../node_modules/ramda/src/omit.js","../node_modules/@native-html/transient-render-engine/node_modules/htmlparser2/lib/Parser.js","../node_modules/@native-html/transient-render-engine/node_modules/htmlparser2/lib/Tokenizer.js","../node_modules/@native-html/transient-render-engine/node_modules/htmlparser2/node_modules/entities/lib/decode_codepoint.js","../node_modules/@native-html/transient-render-engine/node_modules/htmlparser2/lib/FeedHandler.js","../node_modules/@native-html/transient-render-engine/node_modules/domutils/lib/stringify.js","../node_modules/entities/lib/decode.js","../node_modules/entities/lib/encode.js","../node_modules/@native-html/transient-render-engine/node_modules/domutils/lib/querying.js","../node_modules/@native-html/transient-render-engine/node_modules/domutils/lib/legacy.js","../defaultHTMLElementModels.ts","../defaultSystemFonts.ts","../RenderHTMLConfigProvider.tsx","../node_modules/@babel/runtime/helpers/asyncToGenerator.js","../../src/makeAlphanumMaxlenComputer.ts","../../src/presets/decimal.ts","../defaultSharedProps.ts","../constants.ts","../TNodeChildrenRenderer.tsx","../renderChildren.tsx","../ARenderer.tsx","../node_modules/urijs/src/punycode.js","../node_modules/urijs/src/IPv6.js","../node_modules/urijs/src/SecondLevelDomains.js","../useIMGElementState.ts","../useIMGNormalizedSource.ts","../useImageConcreteDimensions.ts","../getIMGState.ts","../useImageSpecifiedDimensions.ts","../IMGElementContentSuccess.tsx","../IMGElementContainer.tsx","../GenericPressable.tsx","../IMGElementContentLoading.tsx","../IMGElementContentError.tsx","../IMGElementContentAlt.tsx","../useContentWidth.ts","../contentWidthContext.ts","../OLRenderer.tsx","../OLElement.tsx","../ListElement.tsx","../ListStyleSpecsProvider.tsx","../ULRenderer.tsx","../ULElement.tsx","../collapseTopMarginForChild.ts","../sourceLoaderContext.tsx","../RenderHTMLSource.tsx","../node_modules/stringify-entities/lib/core.js","../node_modules/stringify-entities/lib/util/format-smart.js","../node_modules/sdp/sdp.js","../node_modules/react-fast-compare/index.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/postcss-value-parser/lib/index.js","../node_modules/postcss-value-parser/lib/parse.js","../node_modules/postcss-value-parser/lib/walk.js","../node_modules/postcss-value-parser/lib/stringify.js","../node_modules/postcss-value-parser/lib/unit.js","../node_modules/camelize/index.js","../node_modules/css-color-keywords/index.js","../node_modules/react-is/index.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/shallowequal/index.js","../node_modules/styled-components/node_modules/@emotion/stylis/dist/stylis.browser.esm.js","../node_modules/styled-components/node_modules/@emotion/unitless/dist/unitless.browser.esm.js","../node_modules/styled-components/node_modules/supports-color/browser.js","../node_modules/react-device-detect/main.js","../node_modules/ua-parser-js/dist/ua-parser.min.js","../node_modules/webpack/buildin/amd-options.js","../node_modules/react-slick/lib/index.js","../node_modules/react-slick/lib/slider.js","../node_modules/react-slick/lib/inner-slider.js","../node_modules/react-slick/lib/initial-state.js","../node_modules/lodash.debounce/index.js","../node_modules/react-slick/lib/track.js","../node_modules/react-slick/lib/dots.js","../node_modules/react-slick/lib/arrows.js","../node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js","../node_modules/json2mq/index.js","../node_modules/string-convert/camel2hyphen.js","../node_modules/react-slick/lib/default-props.js","../node_modules/enquire.js/src/index.js","../node_modules/enquire.js/src/MediaQueryDispatch.js","../node_modules/enquire.js/src/MediaQuery.js","../node_modules/enquire.js/src/QueryHandler.js","../../src/Bar.tsx","../../src/Close.tsx","../../src/Panel.tsx","../node_modules/qr-image/lib/qr.js","../node_modules/qr-image/lib/qr-base.js","../node_modules/qr-image/lib/encode.js","../node_modules/qr-image/lib/errorcode.js","../node_modules/qr-image/lib/matrix.js","../node_modules/qr-image/lib/png.js","../node_modules/browserify-zlib/lib/index.js","../node_modules/browserify-zlib/lib/binding.js","../node_modules/util/support/isBufferBrowser.js","../node_modules/util/node_modules/inherits/inherits_browser.js","../node_modules/pako/lib/zlib/zstream.js","../node_modules/pako/lib/zlib/deflate.js","../node_modules/pako/lib/zlib/trees.js","../node_modules/pako/lib/zlib/messages.js","../node_modules/pako/lib/zlib/inflate.js","../node_modules/pako/lib/zlib/inffast.js","../node_modules/pako/lib/zlib/inftrees.js","../node_modules/pako/lib/zlib/constants.js","../node_modules/qr-image/lib/crc32.js","../node_modules/qr-image/lib/crc32buffer.js","../node_modules/qr-image/lib/vector.js","webpack:///../../index.ts?4e4a","../Webcam/webpack/universalModuleDefinition","../Webcam/webpack/bootstrap","../Webcam/src/react-webcam.tsx","../webpack:/Webcam/external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","../../src/constants.ts","../../src/Path.tsx","../../src/CircularProgressbar.tsx","../../src/CircularProgressbarWithChildren.tsx","../../src/buildStyles.ts","../RenderHTML.tsx","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../RenderHTMLDebug.tsx","../useTRenderEngine.ts","../TRenderEngine.ts","../collapse.ts","../hoist.ts","../CSSProcessor.ts","../CSSInlineParseRun.ts","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../CSSNativeParseRun.ts","../CSSPropertiesValidationRegistry.ts","../makepropertiesValidators.ts","../LongFontFamilyPropertyValidator.ts","../LongFloatNumberCSSPropertyValidator.ts","../LongBorderWidthCSSPropertyValidator.ts","../node_modules/@babel/runtime/helpers/superPropBase.js","../LongFontSizeCSSValidator.ts","../LongAspectRatioPropertyValidator.ts","../LongEnumerationListCSSPropertyValidator.ts","../LongBorderStyleCSSPropertyValidator.ts","../LongColorCSSPropertyValidator.ts","../ShortFontCSSValidator.ts","../ShortFlexCSSPropertyValidator.ts","../LongCSSToReactNativeValidator.ts","../ShortCardinalCSSPropertyValidator.ts","../ShortDualNativePropertyValidator.ts","../node_modules/ramda/src/isNil.js","../node_modules/ramda/src/not.js","../node_modules/ramda/src/internal/_pipe.js","../node_modules/ramda/src/reduce.js","../node_modules/ramda/src/internal/_reduce.js","../node_modules/ramda/src/internal/_isArrayLike.js","../node_modules/ramda/src/internal/_xwrap.js","../node_modules/ramda/src/bind.js","../node_modules/ramda/src/tail.js","../node_modules/ramda/src/slice.js","../node_modules/ramda/src/reverse.js","../markersPrototype.ts","../tnodeSnapshot.ts","../text-transforms.ts","../translate.ts","../TDocumentImpl.ts","../TEmptyCtor.ts","../parseDocument.ts","../node_modules/@native-html/transient-render-engine/node_modules/htmlparser2/lib/index.js","../node_modules/@native-html/transient-render-engine/node_modules/htmlparser2/node_modules/entities/lib/decode.js","../node_modules/@native-html/transient-render-engine/node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-html.js","../node_modules/@native-html/transient-render-engine/node_modules/htmlparser2/node_modules/entities/lib/generated/decode-data-xml.js","../node_modules/@native-html/transient-render-engine/node_modules/dom-serializer/lib/index.js","../node_modules/entities/lib/index.js","../node_modules/entities/lib/decode_codepoint.js","../node_modules/@native-html/transient-render-engine/node_modules/dom-serializer/lib/foreignNames.js","../node_modules/@native-html/transient-render-engine/node_modules/domutils/lib/traversal.js","../node_modules/@native-html/transient-render-engine/node_modules/domutils/lib/manipulation.js","../node_modules/@native-html/transient-render-engine/node_modules/domutils/lib/helpers.js","../node_modules/@native-html/transient-render-engine/node_modules/domutils/lib/feeds.js","../DomHandler.ts","../TStylesMerger.ts","../defaults.ts","../HTMLModelRegistry.ts","../node_modules/ramda/src/identity.js","../node_modules/ramda/src/internal/_identity.js","../node_modules/ramda/src/mergeDeepRight.js","../node_modules/ramda/src/mergeDeepWithKey.js","../node_modules/ramda/src/internal/_isObject.js","../node_modules/ramda/src/mergeWithKey.js","../defaultRendererProps.ts","../../src/index.tsx","../../src/presets/decimalLeadingZero.ts","../../src/presets/lowerRoman.ts","../../src/presets/lowerAlpha.ts","../../src/presets/lowerGreek.ts","../../src/presets/upperAlpha.ts","../../src/presets/upperRoman.ts","../DisclosureClosedSymbolRenderer.tsx","../DisclosureOpenSymbolRenderer.tsx","../CircleSymbolRenderer.tsx","../DiscSymbolRenderer.tsx","../SquareSymbolRenderer.tsx","../selectSharedProps.ts","../node_modules/ramda/src/pickBy.js","../node_modules/ramda/src/mergeRight.js","../node_modules/ramda/src/internal/_objectAssign.js","../useAssembledCommonProps.ts","../mergeCollapsedMargins.ts","../RenderRegistry.ts","../lookupRecord.ts","../BRRenderer.tsx","../WBRRenderer.tsx","../internalRenderers.ts","../normalizeResourceLocator.ts","../node_modules/urijs/src/URI.js","../extractImageStyleProps.ts","../getDimensionsWithAspectRatio.ts","../renderTextualContent.tsx","../renderBlockContent.tsx","../renderEmptyContent.ts","../getCollapsedMarginTop.ts","../node_modules/ramda/src/equals.js","../node_modules/ramda/src/internal/_equals.js","../node_modules/ramda/src/internal/_arrayFromIterator.js","../node_modules/ramda/src/internal/_includesWith.js","../node_modules/ramda/src/internal/_functionName.js","../node_modules/ramda/src/internal/_objectIs.js","../node_modules/ramda/src/keys.js","../node_modules/ramda/src/internal/_isArguments.js","../node_modules/ramda/src/type.js","../isUriSource.ts","../SourceLoaderUri.tsx","../useTTree.ts","../TDocumentRenderer.tsx","../SourceLoaderInline.tsx","../SourceLoaderDom.tsx","../isDomSource.ts","../useInternalRenderer.ts","../splitBoxModelStyle.ts","../domNodeToHTMLString.ts","../node_modules/stringify-entities/index.js","../node_modules/stringify-entities/lib/index.js","../node_modules/stringify-entities/lib/encode.js","../node_modules/xtend/immutable.js","../node_modules/stringify-entities/lib/util/to-hexadecimal.js","../node_modules/stringify-entities/lib/util/to-decimal.js","../node_modules/stringify-entities/lib/util/to-named.js","../node_modules/stringify-entities/lib/constant/characters.js","../node_modules/stringify-entities/lib/constant/has-own-property.js","../node_modules/stringify-entities/lib/escape.js","../useIMGElementStateWithCache.ts","../node_modules/react-sidebar/dist/react-sidebar.esm.js","../node_modules/@babel/runtime/helpers/objectSpread.js","../node_modules/@babel/runtime/helpers/inheritsLoose.js","../node_modules/react-qr-reader/lib/index.js","../node_modules/react-qr-reader/lib/getDeviceId.js","../node_modules/react-qr-reader/lib/errors.js","../node_modules/react-qr-reader/lib/havePropsChanged.js","../node_modules/react-qr-reader/lib/createBlob.js","../node_modules/rtcpeerconnection-shim/rtcpeerconnection.js","../../webpack/bootstrap","../webpack:/external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","../../node_modules/prop-types/index.js","../../node_modules/prop-types/factoryWithThrowingShims.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../src/style.css?7163","../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","../../src/style.css","../../node_modules/css-loader/dist/runtime/api.js","../../src/helper.js","../../src/index.js","../node_modules/ramda/es/F.js","../node_modules/ramda/es/T.js","../node_modules/ramda/es/__.js","../node_modules/ramda/es/internal/_isPlaceholder.js","../node_modules/ramda/es/internal/_curry1.js","../node_modules/ramda/es/internal/_curry2.js","../node_modules/ramda/es/add.js","../node_modules/ramda/es/internal/_concat.js","../node_modules/ramda/es/internal/_arity.js","../node_modules/ramda/es/internal/_curryN.js","../node_modules/ramda/es/curryN.js","../node_modules/ramda/es/addIndex.js","../node_modules/ramda/es/internal/_curry3.js","../node_modules/ramda/es/adjust.js","../node_modules/ramda/es/internal/_isArray.js","../node_modules/ramda/es/internal/_isTransformer.js","../node_modules/ramda/es/internal/_dispatchable.js","../node_modules/ramda/es/internal/_reduced.js","../node_modules/ramda/es/internal/_xfBase.js","../node_modules/ramda/es/internal/_xall.js","../node_modules/ramda/es/all.js","../node_modules/ramda/es/max.js","../node_modules/ramda/es/internal/_map.js","../node_modules/ramda/es/internal/_isString.js","../node_modules/ramda/es/internal/_isArrayLike.js","../node_modules/ramda/es/internal/_xwrap.js","../node_modules/ramda/es/bind.js","../node_modules/ramda/es/internal/_reduce.js","../node_modules/ramda/es/internal/_xmap.js","../node_modules/ramda/es/internal/_has.js","../node_modules/ramda/es/internal/_isArguments.js","../node_modules/ramda/es/keys.js","../node_modules/ramda/es/map.js","../node_modules/ramda/es/internal/_isInteger.js","../node_modules/ramda/es/nth.js","../node_modules/ramda/es/paths.js","../node_modules/ramda/es/path.js","../node_modules/ramda/es/prop.js","../node_modules/ramda/es/pluck.js","../node_modules/ramda/es/reduce.js","../node_modules/ramda/es/allPass.js","../node_modules/ramda/es/always.js","../node_modules/ramda/es/and.js","../node_modules/ramda/es/internal/_xany.js","../node_modules/ramda/es/any.js","../node_modules/ramda/es/anyPass.js","../node_modules/ramda/es/ap.js","../node_modules/ramda/es/internal/_aperture.js","../node_modules/ramda/es/internal/_xaperture.js","../node_modules/ramda/es/aperture.js","../node_modules/ramda/es/append.js","../node_modules/ramda/es/apply.js","../node_modules/ramda/es/values.js","../node_modules/ramda/es/applySpec.js","../node_modules/ramda/es/applyTo.js","../node_modules/ramda/es/ascend.js","../node_modules/ramda/es/assoc.js","../node_modules/ramda/es/isNil.js","../node_modules/ramda/es/assocPath.js","../node_modules/ramda/es/nAry.js","../node_modules/ramda/es/binary.js","../node_modules/ramda/es/internal/_isFunction.js","../node_modules/ramda/es/liftN.js","../node_modules/ramda/es/lift.js","../node_modules/ramda/es/both.js","../node_modules/ramda/es/curry.js","../node_modules/ramda/es/call.js","../node_modules/ramda/es/internal/_makeFlat.js","../node_modules/ramda/es/internal/_flatCat.js","../node_modules/ramda/es/internal/_forceReduced.js","../node_modules/ramda/es/chain.js","../node_modules/ramda/es/internal/_xchain.js","../node_modules/ramda/es/clamp.js","../node_modules/ramda/es/internal/_cloneRegExp.js","../node_modules/ramda/es/type.js","../node_modules/ramda/es/internal/_clone.js","../node_modules/ramda/es/clone.js","../node_modules/ramda/es/comparator.js","../node_modules/ramda/es/not.js","../node_modules/ramda/es/complement.js","../node_modules/ramda/es/internal/_pipe.js","../node_modules/ramda/es/internal/_checkForMethod.js","../node_modules/ramda/es/slice.js","../node_modules/ramda/es/tail.js","../node_modules/ramda/es/pipe.js","../node_modules/ramda/es/reverse.js","../node_modules/ramda/es/compose.js","../node_modules/ramda/es/composeK.js","../node_modules/ramda/es/internal/_pipeP.js","../node_modules/ramda/es/pipeP.js","../node_modules/ramda/es/composeP.js","../node_modules/ramda/es/head.js","../node_modules/ramda/es/internal/_identity.js","../node_modules/ramda/es/identity.js","../node_modules/ramda/es/pipeWith.js","../node_modules/ramda/es/composeWith.js","../node_modules/ramda/es/internal/_arrayFromIterator.js","../node_modules/ramda/es/internal/_includesWith.js","../node_modules/ramda/es/internal/_objectIs.js","../node_modules/ramda/es/internal/_equals.js","../node_modules/ramda/es/internal/_functionName.js","../node_modules/ramda/es/equals.js","../node_modules/ramda/es/internal/_indexOf.js","../node_modules/ramda/es/internal/_includes.js","../node_modules/ramda/es/internal/_quote.js","../node_modules/ramda/es/internal/_toISOString.js","../node_modules/ramda/es/internal/_complement.js","../node_modules/ramda/es/internal/_filter.js","../node_modules/ramda/es/internal/_isObject.js","../node_modules/ramda/es/internal/_xfilter.js","../node_modules/ramda/es/filter.js","../node_modules/ramda/es/reject.js","../node_modules/ramda/es/internal/_toString.js","../node_modules/ramda/es/toString.js","../node_modules/ramda/es/concat.js","../node_modules/ramda/es/cond.js","../node_modules/ramda/es/constructN.js","../node_modules/ramda/es/construct.js","../node_modules/ramda/es/contains.js","../node_modules/ramda/es/converge.js","../node_modules/ramda/es/internal/_xreduceBy.js","../node_modules/ramda/es/reduceBy.js","../node_modules/ramda/es/countBy.js","../node_modules/ramda/es/dec.js","../node_modules/ramda/es/defaultTo.js","../node_modules/ramda/es/descend.js","../node_modules/ramda/es/internal/_Set.js","../node_modules/ramda/es/difference.js","../node_modules/ramda/es/differenceWith.js","../node_modules/ramda/es/dissoc.js","../node_modules/ramda/es/remove.js","../node_modules/ramda/es/update.js","../node_modules/ramda/es/dissocPath.js","../node_modules/ramda/es/divide.js","../node_modules/ramda/es/internal/_xdrop.js","../node_modules/ramda/es/drop.js","../node_modules/ramda/es/internal/_xtake.js","../node_modules/ramda/es/take.js","../node_modules/ramda/es/internal/_dropLast.js","../node_modules/ramda/es/internal/_xdropLast.js","../node_modules/ramda/es/dropLast.js","../node_modules/ramda/es/internal/_dropLastWhile.js","../node_modules/ramda/es/internal/_xdropLastWhile.js","../node_modules/ramda/es/dropLastWhile.js","../node_modules/ramda/es/internal/_xdropRepeatsWith.js","../node_modules/ramda/es/last.js","../node_modules/ramda/es/dropRepeatsWith.js","../node_modules/ramda/es/dropRepeats.js","../node_modules/ramda/es/internal/_xdropWhile.js","../node_modules/ramda/es/dropWhile.js","../node_modules/ramda/es/or.js","../node_modules/ramda/es/either.js","../node_modules/ramda/es/empty.js","../node_modules/ramda/es/takeLast.js","../node_modules/ramda/es/endsWith.js","../node_modules/ramda/es/eqBy.js","../node_modules/ramda/es/eqProps.js","../node_modules/ramda/es/evolve.js","../node_modules/ramda/es/internal/_xfind.js","../node_modules/ramda/es/find.js","../node_modules/ramda/es/internal/_xfindIndex.js","../node_modules/ramda/es/findIndex.js","../node_modules/ramda/es/internal/_xfindLast.js","../node_modules/ramda/es/findLast.js","../node_modules/ramda/es/internal/_xfindLastIndex.js","../node_modules/ramda/es/findLastIndex.js","../node_modules/ramda/es/flatten.js","../node_modules/ramda/es/flip.js","../node_modules/ramda/es/forEach.js","../node_modules/ramda/es/forEachObjIndexed.js","../node_modules/ramda/es/fromPairs.js","../node_modules/ramda/es/groupBy.js","../node_modules/ramda/es/groupWith.js","../node_modules/ramda/es/gt.js","../node_modules/ramda/es/gte.js","../node_modules/ramda/es/hasPath.js","../node_modules/ramda/es/has.js","../node_modules/ramda/es/hasIn.js","../node_modules/ramda/es/identical.js","../node_modules/ramda/es/ifElse.js","../node_modules/ramda/es/inc.js","../node_modules/ramda/es/includes.js","../node_modules/ramda/es/indexBy.js","../node_modules/ramda/es/indexOf.js","../node_modules/ramda/es/init.js","../node_modules/ramda/es/innerJoin.js","../node_modules/ramda/es/insert.js","../node_modules/ramda/es/insertAll.js","../node_modules/ramda/es/uniqBy.js","../node_modules/ramda/es/uniq.js","../node_modules/ramda/es/intersection.js","../node_modules/ramda/es/intersperse.js","../node_modules/ramda/es/internal/_objectAssign.js","../node_modules/ramda/es/objOf.js","../node_modules/ramda/es/internal/_stepCat.js","../node_modules/ramda/es/into.js","../node_modules/ramda/es/invert.js","../node_modules/ramda/es/invertObj.js","../node_modules/ramda/es/invoker.js","../node_modules/ramda/es/is.js","../node_modules/ramda/es/isEmpty.js","../node_modules/ramda/es/join.js","../node_modules/ramda/es/juxt.js","../node_modules/ramda/es/keysIn.js","../node_modules/ramda/es/lastIndexOf.js","../node_modules/ramda/es/internal/_isNumber.js","../node_modules/ramda/es/length.js","../node_modules/ramda/es/lens.js","../node_modules/ramda/es/lensIndex.js","../node_modules/ramda/es/lensPath.js","../node_modules/ramda/es/lensProp.js","../node_modules/ramda/es/lt.js","../node_modules/ramda/es/lte.js","../node_modules/ramda/es/mapAccum.js","../node_modules/ramda/es/mapAccumRight.js","../node_modules/ramda/es/mapObjIndexed.js","../node_modules/ramda/es/match.js","../node_modules/ramda/es/mathMod.js","../node_modules/ramda/es/maxBy.js","../node_modules/ramda/es/sum.js","../node_modules/ramda/es/mean.js","../node_modules/ramda/es/median.js","../node_modules/ramda/es/memoizeWith.js","../node_modules/ramda/es/merge.js","../node_modules/ramda/es/mergeAll.js","../node_modules/ramda/es/mergeWithKey.js","../node_modules/ramda/es/mergeDeepWithKey.js","../node_modules/ramda/es/mergeDeepLeft.js","../node_modules/ramda/es/mergeDeepRight.js","../node_modules/ramda/es/mergeDeepWith.js","../node_modules/ramda/es/mergeLeft.js","../node_modules/ramda/es/mergeRight.js","../node_modules/ramda/es/mergeWith.js","../node_modules/ramda/es/min.js","../node_modules/ramda/es/minBy.js","../node_modules/ramda/es/modulo.js","../node_modules/ramda/es/move.js","../node_modules/ramda/es/multiply.js","../node_modules/ramda/es/negate.js","../node_modules/ramda/es/none.js","../node_modules/ramda/es/nthArg.js","../node_modules/ramda/es/o.js","../node_modules/ramda/es/internal/_of.js","../node_modules/ramda/es/of.js","../node_modules/ramda/es/omit.js","../node_modules/ramda/es/once.js","../node_modules/ramda/es/internal/_assertPromise.js","../node_modules/ramda/es/otherwise.js","../node_modules/ramda/es/over.js","../node_modules/ramda/es/pair.js","../node_modules/ramda/es/internal/_createPartialApplicator.js","../node_modules/ramda/es/partial.js","../node_modules/ramda/es/partialRight.js","../node_modules/ramda/es/partition.js","../node_modules/ramda/es/pathEq.js","../node_modules/ramda/es/pathOr.js","../node_modules/ramda/es/pathSatisfies.js","../node_modules/ramda/es/pick.js","../node_modules/ramda/es/pickAll.js","../node_modules/ramda/es/pickBy.js","../node_modules/ramda/es/pipeK.js","../node_modules/ramda/es/prepend.js","../node_modules/ramda/es/product.js","../node_modules/ramda/es/useWith.js","../node_modules/ramda/es/project.js","../node_modules/ramda/es/propEq.js","../node_modules/ramda/es/propIs.js","../node_modules/ramda/es/propOr.js","../node_modules/ramda/es/propSatisfies.js","../node_modules/ramda/es/props.js","../node_modules/ramda/es/range.js","../node_modules/ramda/es/reduceRight.js","../node_modules/ramda/es/reduceWhile.js","../node_modules/ramda/es/reduced.js","../node_modules/ramda/es/times.js","../node_modules/ramda/es/repeat.js","../node_modules/ramda/es/replace.js","../node_modules/ramda/es/scan.js","../node_modules/ramda/es/sequence.js","../node_modules/ramda/es/set.js","../node_modules/ramda/es/sort.js","../node_modules/ramda/es/sortBy.js","../node_modules/ramda/es/sortWith.js","../node_modules/ramda/es/split.js","../node_modules/ramda/es/splitAt.js","../node_modules/ramda/es/splitEvery.js","../node_modules/ramda/es/splitWhen.js","../node_modules/ramda/es/startsWith.js","../node_modules/ramda/es/subtract.js","../node_modules/ramda/es/symmetricDifference.js","../node_modules/ramda/es/symmetricDifferenceWith.js","../node_modules/ramda/es/takeLastWhile.js","../node_modules/ramda/es/internal/_xtakeWhile.js","../node_modules/ramda/es/takeWhile.js","../node_modules/ramda/es/internal/_xtap.js","../node_modules/ramda/es/tap.js","../node_modules/ramda/es/test.js","../node_modules/ramda/es/internal/_isRegExp.js","../node_modules/ramda/es/andThen.js","../node_modules/ramda/es/toLower.js","../node_modules/ramda/es/toPairs.js","../node_modules/ramda/es/toPairsIn.js","../node_modules/ramda/es/toUpper.js","../node_modules/ramda/es/transduce.js","../node_modules/ramda/es/transpose.js","../node_modules/ramda/es/traverse.js","../node_modules/ramda/es/trim.js","../node_modules/ramda/es/tryCatch.js","../node_modules/ramda/es/unapply.js","../node_modules/ramda/es/unary.js","../node_modules/ramda/es/uncurryN.js","../node_modules/ramda/es/unfold.js","../node_modules/ramda/es/union.js","../node_modules/ramda/es/uniqWith.js","../node_modules/ramda/es/unionWith.js","../node_modules/ramda/es/unless.js","../node_modules/ramda/es/unnest.js","../node_modules/ramda/es/until.js","../node_modules/ramda/es/valuesIn.js","../node_modules/ramda/es/view.js","../node_modules/ramda/es/when.js","../node_modules/ramda/es/where.js","../node_modules/ramda/es/whereEq.js","../node_modules/ramda/es/without.js","../node_modules/ramda/es/xor.js","../node_modules/ramda/es/xprod.js","../node_modules/ramda/es/zip.js","../node_modules/ramda/es/zipObj.js","../node_modules/ramda/es/zipWith.js","../node_modules/ramda/es/thunkify.js","../node_modules/deepmerge/dist/es.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_baseAssign.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/_baseAssignIn.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_copySymbols.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/_getSymbolsIn.js","../node_modules/lodash-es/_copySymbolsIn.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_getAllKeysIn.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_initCloneArray.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_cloneDataView.js","../node_modules/lodash-es/_cloneRegExp.js","../node_modules/lodash-es/_cloneSymbol.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_initCloneByTag.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/_baseIsMap.js","../node_modules/lodash-es/isMap.js","../node_modules/lodash-es/_baseIsSet.js","../node_modules/lodash-es/isSet.js","../node_modules/lodash-es/_baseClone.js","../node_modules/lodash-es/clone.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/lodash-es/toPath.js","../node_modules/lodash-es/cloneDeep.js","../../src/FormikContext.tsx","../../src/utils.ts","../../src/Formik.tsx","../../src/connect.tsx","../../src/Form.tsx","../../src/FieldArray.tsx","../../src/ErrorMessage.tsx","../../src/FastField.tsx","../node_modules/webrtc-adapter/src/js/utils.js","../node_modules/webrtc-adapter/src/js/chrome/getusermedia.js","../node_modules/webrtc-adapter/src/js/chrome/getdisplaymedia.js","../node_modules/webrtc-adapter/src/js/chrome/chrome_shim.js","../node_modules/webrtc-adapter/src/js/edge/getusermedia.js","../node_modules/webrtc-adapter/src/js/edge/getdisplaymedia.js","../node_modules/webrtc-adapter/src/js/edge/edge_shim.js","../node_modules/webrtc-adapter/src/js/edge/filtericeservers.js","../node_modules/webrtc-adapter/src/js/firefox/getusermedia.js","../node_modules/webrtc-adapter/src/js/firefox/getdisplaymedia.js","../node_modules/webrtc-adapter/src/js/firefox/firefox_shim.js","../node_modules/webrtc-adapter/src/js/safari/safari_shim.js","../node_modules/webrtc-adapter/src/js/common_shim.js","../node_modules/webrtc-adapter/src/js/adapter_core.js","../node_modules/webrtc-adapter/src/js/adapter_factory.js","../node_modules/react-share/es/EmailShareButton.js","../node_modules/react-share/es/EmailIcon.js","../node_modules/react-share/es/FacebookShareButton.js","../node_modules/react-share/es/FacebookIcon.js","../node_modules/react-share/es/TelegramShareButton.js","../node_modules/react-share/es/TelegramIcon.js","../node_modules/react-share/es/WhatsappShareButton.js","../node_modules/react-share/es/WhatsappIcon.js","../node_modules/react-share/es/TwitterShareButton.js","../node_modules/react-share/es/TwitterIcon.js","../node_modules/react-share/es/LinkedinShareButton.js","../node_modules/react-share/es/LinkedinIcon.js","../node_modules/react-share/es/RedditShareButton.js","../node_modules/react-share/es/RedditIcon.js","../node_modules/react-share/es/PocketShareButton.js","../node_modules/react-share/es/PocketIcon.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/useTranslation.js"],"names":["warning","condition","message","defineProperty","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","module","exports","target","i","arguments","length","source","forEach","key","getOwnPropertyDescriptors","defineProperties","__esModule","setPrototypeOf","subClass","superClass","TypeError","prototype","create","constructor","value","writable","configurable","getPrototypeOf","isNativeReflectConstruct","possibleConstructorReturn","Derived","hasNativeReflectConstruct","result","Super","NewTarget","this","Reflect","construct","obj","_extends","assign","hasOwnProperty","call","_createClass","props","descriptor","Constructor","protoProps","staticProps","_react","require","_react2","default","_reactNative","_possibleConstructorReturn","self","ReferenceError","LinearGradient","_PureComponent","_ref","_temp","_this","instance","_classCallCheck","_len","args","Array","_key","__proto__","concat","state","width","height","measure","event","setState","nativeEvent","layout","onLayout","getAngle","useAngle","angle","Math","atan2","end","y","start","x","PI","getColors","colors","map","color","index","location","locations","locationStyle","join","_inherits","_props","style","angleCenter","children","otherProps","indexOf","_objectWithoutProperties","createElement","View","backgroundImage","__source","fileName","lineNumber","PureComponent","defaultProps","freeSelf","root","freeGlobal","Function","objectWithoutPropertiesLoose","excluded","sourceSymbolKeys","propertyIsEnumerable","__createBinding","o","m","k","k2","undefined","get","__exportStar","p","DomHandler","domelementtype_1","node_1","reWhitespace","defaultOpts","normalizeWhitespace","withStartIndices","withEndIndices","xmlMode","callback","options","elementCB","dom","Document","done","tagStack","lastNode","parser","onparserinit","onreset","onend","handleCallback","onerror","error","onclosetag","elem","pop","endIndex","onopentag","name","attribs","type","ElementType","Tag","element","Element","addNode","ontext","data","Text","replace","node","oncomment","Comment","oncommentend","oncdatastart","text","NodeWithChildren","CDATA","parent","oncdataend","onprocessinginstruction","ProcessingInstruction","previousSibling","startIndex","prev","next","_isPlaceholder","fn","f1","a","sharedProps","useSharedProps","viewProps","defaultSharedProps","defaultViewProps","textProps","defaultTextProps","tagName","computeEmbeddedMaxWidth","useCallback","cw","memoizedSharedProps","useMemo","customListStyleSpecs","defaultListStyleSpecs","SharedPropsContext","React","codepointLength","max","codeunitLength","reverseString","objectToGetParams","params","entries","_a","encodeURIComponent","String","__assign","t","s","n","__rest","e","createIcon","iconConfig","Icon","bgStyle","borderRadius","iconFillColor","round","size","rest","viewBox","cx","cy","r","fill","rx","ry","d","path","_getPrototypeOf","normalizeInlineCSSValue","normalizeRawInlineCSSValue","normalizeNativeValue","_curry1","f2","b","_b","__extends","extendStatics","__","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","rejected","then","__generator","body","f","g","_","label","sent","trys","ops","verb","Symbol","iterator","v","op","ShareButton","_super","openShareDialog","link","onShareWindowClose","windowHeight","_c","windowPosition","_d","windowWidth","url","onClose","configRest","config","toolbar","status","directories","menubar","scrollbars","resizable","centerscreen","chrome","shareDialog","window","open","interval_1","setInterval","closed","clearInterval","console","windowOpen","left","outerWidth","screenX","screenLeft","top","outerHeight","screenY","screenTop","screen","getBoxPositionOnScreenCenter","handleClick","beforeOnClick","disabled","networkLink","onClick","openShareDialogOnClick","opts","returnVal","preventDefault","render","className","disabledStyle","forwardedRef","networkName","resetButtonStyle","newClassName","newStyle","backgroundColor","border","padding","font","cursor","ref","opacity","Component","createShareButton","optsMap","CreatedButton","passedProps","displayName","forwardRef","isIphoneX","dimen","Dimensions","Platform","OS","isPad","isTVOS","ifIphoneX","iphoneXStyle","regularStyle","AssertionError","Error","assert","HTMLContentModel","properties","superPropBase","_get","property","receiver","base","desc","profile","prop","mergedRenderersProps","defaultRendererProps","RenderersPropsContext","hasOwn","classNames","classes","arg","argType","isArray","inner","toString","clamp","canUseDOM","slidesOnLeft","slidesOnRight","siblingDirection","getTotalSlides","getPostClones","getPreClones","getTrackLeft","getTrackAnimateCSS","getTrackCSS","checkSpecKeys","getSlideCount","checkNavigable","getNavigableIndexes","swipeEnd","swipeMove","swipeStart","keyHandler","changeSlide","slideHandler","initializedState","extractObject","canGoNext","getSwipeDirection","getHeight","getWidth","lazySlidesOnRight","lazySlidesOnLeft","lazyEndIndex","lazyStartIndex","getRequiredLazySlides","getOnDemandLazySlides","_objectSpread","_defineProperty","number","lowerBound","upperBound","min","spec","onDemandSlides","slideIndex","lazyLoadedList","requiredSlides","currentSlide","centerMode","floor","slidesToShow","parseInt","centerPadding","offsetWidth","offsetHeight","touchObject","xDist","yDist","swipeAngle","verticalSwiping","startX","curX","startY","curY","abs","canGo","infinite","slideCount","newObject","slideWidth","Children","count","listNode","listRef","listWidth","ceil","trackNode","trackRef","trackWidth","vertical","centerPaddingAdj","slice","slideHeight","querySelector","listHeight","initialSlide","rtl","slidesToLoad","autoplaying","autoplay","waitForAnimate","animating","fade","lazyLoad","slidesToScroll","useCSS","finalSlide","animationLeft","finalLeft","animationSlide","nextState","targetSlide","trackStyle","swipeLeft","indexOffset","previousInt","slideOffset","previousTargetSlide","direction","Number","accessibility","match","keyCode","swipe","draggable","dragging","touches","pageX","clientX","pageY","clientY","scrolling","swipeToSlide","edgeFriction","edgeDragged","onEdge","swiped","swiping","swipeEvent","curLeft","swipeLength","sqrt","pow","verticalSwipeLength","positionOffset","dotCount","swipeDirection","touchSwipeLength","touchThreshold","onSwipe","minSwipe","newSlide","activeSlide","currentLeft","breakpoint","counter","indexes","navigables","prevNavigable","centerOffset","swipedSlide","slickList","slides","querySelectorAll","from","every","slide","offsetTop","offsetLeft","currentIndex","dataset","keysArray","reduce","trackHeight","trackChildren","transition","WebkitTransition","useTransform","WebkitTransform","transform","msTransform","addEventListener","attachEvent","marginTop","marginLeft","speed","cssEase","unslick","targetLeft","variableWidth","slidesToOffset","targetSlideIndex","trackElem","childNodes","right","_ref2","document","TextType","TagType","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","arr","__DEV__","performance","lastUpdate","useRef","now","diff","identity","shrinkFactor","prefixSize","prefixStyle","MarkedListItem","testID","rtlLineReversed","styles","renderMarker","counterRenderer","rtlMarkerReversed","counterIndex","maxNumOfCodepoints","markerTextStyle","markerTextWidth","enableMarkerClipping","lineLtr","flexWrap","alignSelf","flexDirection","lineRtl","markerClipConfig","numberOfLines","ellipsizeMode","MarkerBox","markerStyle","TYPED_OK","Uint8Array","Uint16Array","Int32Array","_has","sources","shift","shrinkBuf","buf","subarray","fnTyped","arraySet","dest","src","src_offs","len","dest_offs","set","flattenChunks","chunks","l","pos","chunk","fnUntyped","setTyped","on","Buf8","Buf16","Buf32","engine","defaultTRenderEngine","TRenderEngineContext","tRenderEngineProviderPropTypes","customHTMLElementModels","PropTypes","enableCSSInlineProcessing","enableUserAgentStyles","idsStyles","ignoredDomTags","ignoreDomNode","domVisitors","ignoredStyles","allowedStyles","htmlParserOptions","tagsStyles","classesStyles","emSize","baseStyle","systemFonts","fallbackFonts","serif","monospace","string","setMarkersForTNode","dangerouslyDisableHoisting","dangerouslyDisableWhitespaceCollapsing","selectDomRoot","func","defaultFallbackFonts","ios","defaultTRenderEngineProviderProps","decodeEntities","fontSize","defaultSystemFonts","TRenderEngineProvider","isTag","Script","Style","Root","Directive","Doctype","updateNodeIndexes","emptyAttrs","emptyClasses","transformPropsDefinitionsToSwitch","definition","view","mergeSwitches","init","TStyles","markers","markersPrototype","__nodeIndex","__trimmedLeft","__trimmedRight","__nativeProps","__nativeStyles","__webStyles","__generateNativePropsFromTNode","ariaRole","ret","webTextFlow","selectable","userSelect","attributes","accessibilityProps","accessibilityLabel","role","accessibilityRole","__generateDynamicNativePropsFromModel","elm","whiteSpace","parentStyles","id","domNode","nodeIndex","isUnregistered","bindChildren","shouldUpdateNodeIndexes","cloneInitParams","isCollapsibleLeft","hasWhiteSpaceCollapsingEnabled","isCollapsibleRight","isEmpty","trimLeft","firstChild","trimRight","lastChild","matchContentModel","spliceChildren","offset","collapse","getNativeStyles","nativeTextRet","getWebStyles","webBlockRet","collapseChildren","snapshot","withStyles","withNodeIndex","hasClass","setMarkers","targetMarkers","setMarkersFromAttributes","parentMarkers","getReactNativeProps","autoGeneratedProps","dynamicFromModel","initialize","TNodeCtor","extraAccessors","_curry2","f3","c","pick","names","idx","useContext","DocumentMetadataContext","baseUrl","baseTarget","lang","links","meta","title","dir","nativeProps","TNodeChildrenRenderer","overridenChildren","tnode","propsForChildren","switchProp","propsFromModel","syntheticOnPress","onPress","passedNativeProps","empty","MarkedList","Container","normalChildren","listProps","useMarkedList","freeExports","nodeType","freeModule","freeProcess","process","nodeUtil","types","binding","_interopDefault","ex","parse","parse__default","camelizeStyleName","cssColorKeywords","hexColorRe","cssFunctionNameRe","noopToken","predicate","regExpToken","regExp","SPACE","SLASH","COMMA","WORD","NONE","AUTO","NUMBER","LENGTH","UNSUPPORTED_LENGTH_UNIT","ANGLE","toLowerCase","PERCENT","IDENT","STRING","charCode","fromCharCode","COLOR","test","stringify","LINE","BORDER_STYLE","directionFactory","_ref$types","_ref$directions","directions","_ref$prefix","prefix","_ref$suffix","suffix","tokenStream","values","expect","hasTokens","expectEmpty","_values$","_values$2","bottom","_values$3","keyFor","parseShadowOffset","matches","parseShadow","offsetX","offsetY","radius","didParseFirst","lastValue","saveRewindPoint","rewind","FLEX_WRAP","FLEX_DIRECTION","fontFamily","NORMAL","STYLE","WEIGHT","VARIANT","defaultFontVariant","ALIGN_CONTENT","JUSTIFY_CONTENT","STYLE$1","oneOfType","tokenType","functionStream","singleNumber","singleLength","singleAngle","xyTransformFactory","valueIfOmitted","_ref3","_ref4","xyNumber","xyLength","xyAngle","partTransforms","perspective","scale","scaleX","scaleY","translate","translateX","translateY","rotate","rotateX","rotateY","rotateZ","skewX","skewY","skew","borderColor","borderWidth","margin","transforms","background","borderStyle","partsParsed","boxShadow","_parseShadow","shadowOffset","shadowRadius","shadowColor","shadowOpacity","flex","flexGrow","flexShrink","flexBasis","flexFlow","fontStyle","fontWeight","fontVariant","lineHeight","numStyleWeightVariantMatched","fontFamily$1","out","placeContent","justifyContent","alignContent","textShadow","_parseShadow2","textShadowOffset","textShadowRadius","textShadowColor","textDecoration","line","lines","sort","reverse","textDecorationLine","textDecorationColor","textDecorationStyle","_ref5","expectFunction","functionName","transformedValues","SYMBOL_MATCH","TokenStream","nodes","rewindIndex","_proto","matchesFunction","numberOrLengthRe","boolRe","nullRe","undefinedRe","transformRawValue","propName","numberMatch","boolMatch","transformShorthandValue","ast","getStylesForProperty","inputValue","allowShorthand","_ref6","isRawValue","trim","getPropertyName","rules","shorthandBlacklist","accum","rule","propertyName","phrasingCategories","translatableBlockCategories","reactNativeProps","isOpaque","isTranslatableBlock","contentModel","isTranslatableTextual","extend","HTMLElementModel","fromCustomModel","isVoid","optionalFields","fromNativeModel","isPhrasing","isTranslatable","category","TBlockCtor","indexesToSplice","child","nativeBlockRet","notNil","not","nil","inheritProperties","realProperties","curr","ownProcessedProps","CSSProcessedProps","CSSProcessor","_setPrototypeOf","record","computeSize","absoluteLengthUnitsMultiplicators","computeEmSize","rootFontSize","splitValueAndUnit","exec","split","hasChildren","isDocument","isComment","isText","isCDATA","domhandler_1","unitaryRenderer","CounterStyle","lowerAlphaSpec","counterStyleRenderer","lowerAlpha","upperAlphaSpec","upperAlpha","decimalLeadingZero","DisclosureClosedSymbolRenderer","DisclosureOpenSymbolRenderer","lowerGreek","lowerRoman","upperRoman","circle","CircleSymbolRenderer","decimal","disc","DiscSymbolRenderer","none","square","SquareSymbolRenderer","TChildrenRenderersContext","TChildrenRenderer","renderChildren","tchildrenRendererDefaultProps","TDefaultBlockRenderer","renderBlockContent","TDefaultPhrasingRenderer","renderTextualContent","TDefaultTextRenderer","isGhostTNode","TNodeRenderer","memo","renderRegistry","tnodeProps","renderer","renderEmptyContent","Renderer","InternalTextRenderer","renderFn","propsFromParent","collapsedMarginTop","renderers","registry","RenderRegistry","elementModels","RenderRegistryContext","initialUrl","useIMGElementProps","contentWidth","useRendererProps","enableExperimentalPercentWidth","computeImagesMaxWidth","useComputeMaxWidthForTag","uri","containerProps","initialDimensions","rawStyle","StyleSheet","computeMaxWidth","alt","altColor","objectFit","IMGElement","content","IMGElementContentSuccess","IMGElementContentLoading","IMGElementContentError","containerStyle","imgDimensionsType","propTypes","cachedNaturalDimensions","imagesInitialDimensions","defaultImageInitialDimensions","defaultRenderMarker","defaultComputeMarkerBoxWidth","DEFAULT_FONT_SIZE","dynamicMarkerBoxWidth","computeMarkerBoxWidth","syntheticRtlLineReversed","I18nManager","syntheticMarkerTextStyle","textAlign","markerBoxStyle","createContext","ttree","onDocumentMetadataLoaded","ttreeEventsContext","tdoc","global","Buffer","isBuffer","stubFalse","_taggedTemplateLiteral","strings","raw","freeze","AD_REPLACER_R","getAlphabeticChar","code","phash","h","str","generateAlphabeticName","hash","getComponentName","isFunction","typeOf","isStyledComponent","SC_ATTR","SC_ATTR_ACTIVE","SC_ATTR_VERSION","SC_VERSION","SPLITTER","IS_BROWSER","DISABLE_SPEEDY","Boolean","SC_DISABLE_SPEEDY","EMPTY_ARRAY","EMPTY_OBJECT","throwStyledComponentsError","interpolations","DefaultGroupedTag","Uint32Array","indexOfGroup","groupSizes","insertRules","group","oldBuffer","oldSize","newSize","throwStyledError","ruleIndex","tag","insertRule","clearGroup","getGroup","css","getRule","groupIDRegister","reverseRegister","nextFreeGroup","getGroupForId","getIdForGroup","setGroupForId","SELECTOR","MARKER_RE","RegExp","rehydrateNamesFromContent","sheet","rehydrateSheetFromTag","parts","part","marker","makeStyleTag","head","prevStyle","findLastStyleTag","nextSibling","nonce","CSSOMTag","styleSheets","getSheet","_error","deleteRule","cssRules","TextTag","refNode","VirtualTag","SHOULD_REHYDRATE","defaultOptions","isServer","useCSSOMInjection","globalStyles","Map","rehydrateSheet","registerId","reconstructWithOptions","withNames","allocateGSInstance","gs","getTag","makeTag","hasNameForId","has","registerName","groupNames","clearNames","clearRules","clearTag","selector","outputSheet","COMMENT_REGEX","COMPLEX_SELECTOR_PREFIX","masterStylis","plugins","stylis","parsingRules","parseRulesPlugin","delimiter","needle","block","depth","ns","selectors","at","insertRulePlugin","selfReferenceReplacer","_selector","componentId","flatCSS","cssStr","_componentId","_selectorRegexp","_consecutiveSelfRefRegExp","context","parsedRules","stringifyRules","plugin","acc","createStylisInstance","Keyframes","stylisInstance","resolvedName","styleSheet","getName","uppercaseCheck","uppercasePattern","msPattern","prefixAndLowerCase","char","hyphenateStyleName","isFalsish","objToCssArray","hyphenate","isPlainObject","prevKey","flatten","ruleSet","isStatelessFunction","printed","warnOnce","SINGLE_QUOTE","charCodeAt","DOUBLE_QUOTE","BACKSLASH","NEWLINE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","tokenize","input","tokens","ignore","escaped","unclosed","escapePos","quote","last","nextLine","nextOffset","escape","HIGHLIGHT_THEME","brackets","comment","CssSyntaxError","column","setMessage","file","showSourceCode","Input","ignoreErrors","token","terminalHighlight","maxWidth","gutter","spacing","defaultRaw","colon","indent","beforeDecl","beforeRule","beforeOpen","beforeClose","beforeComment","after","emptyBody","commentLeft","commentRight","Stringifier","builder","decl","between","rawValue","atrule","semicolon","before","detect","beforeAfter","method","rawSemicolon","rawEmptyBody","rawIndent","rawBeforeComment","rawBeforeDecl","rawBeforeRule","rawBeforeClose","rawBeforeOpen","rawColon","cloneNode","cloned","j","Node","defaults","positionBy","warn","remove","stringifier","clone","overrides","cloneBefore","cloneAfter","replaceWith","moveTo","newParent","moveBefore","otherNode","moveAfter","toJSON","fixed","cleanRaws","raws","positionInside","removeSelf","own","cleanStyles","val","Declaration","Parser","tokenizer","loop","emptyRule","other","bracket","unclosedBracket","spacesFromEnd","spacesFromStart","stringFrom","cache","checkMissedSemicolon","current","endFile","unclosedBlock","clean","all","spaces","lastTokenType","unknownWord","unexpectedClose","doubleColon","unnamedAtrule","precheckMissedSemicolon","founded","cleanSource","each","lastEach","walk","walkDecls","walkRules","walkAtRules","walkComments","append","prepend","insertBefore","exist","normalize","add","insertAfter","removeChild","removeAll","replaceValues","some","Rule","AtRule","sample","rebuild","fix","eachInside","eachDecl","eachRule","eachAtRule","eachComment","list","array","letter","separators","space","comma","sep","Warning","word","Result","lastPlugin","warnings","messages","isPromise","LazyResult","processor","sync","async","onFulfilled","handleError","pluginName","pluginVer","runtimeVer","err","asyncTick","promise","run","Processor","use","normalized","first","toResult","prevMap","sequence","origin","consumer","mapResolve","sourceRoot","SafeParser","buffer","generated","isObject","isValidKey","mixin","mixinDeep","ThemeContext","ThemeConsumer","validAttr","StyledNativeComponent","attrs","transientAsProp","renderAs","forwardedComponent","forwardedAs","shouldForwardProp","elementToBeRendered","generatedStyles","determineTheme","isTargetTag","computedProps","propFilterFn","propsForElement","buildExecutionContext","theme","attrDef","resolvedAttrDef","attr","generateAndInjectStyles","inlineStyle","executionContext","setNativeProps","addTag","interleave","constructWithOptions","isValidElementType","templateFunction","componentConstructor","reactNative","InlineStyle","generateStyleObject","generateComponentId","declPairs","styleObject","transformDeclPairs","_InlineStyle","createStyledNativeComponent","generateDisplayName","ParentComponent","isClass","isTargetStyledComp","WrappedStyledNativeComponent","finalAttrs","newOptions","merge","hoist","styledComponentId","withComponent","_StyledNativeComponent","styled","aliases","alias","collection","QrCodeSvg","ecLevel","ec_level","parse_url","bgColor","fgColor","version","baseProfile","xmlns","boxOffset","boxSize","qr","objectAssign","compare","_isBuffer","util","pSlice","functionsHaveNames","pToString","isView","arrbuf","ArrayBuffer","DataView","ok","regex","truncate","inspect","something","rawname","fail","actual","expected","operator","stackStartFunction","_deepEqual","strict","memos","isDate","getTime","isRegExp","multiline","lastIndex","ignoreCase","Float32Array","Float64Array","actualIndex","actualVisitedObjects","isPrimitive","aIsArgs","isArguments","bIsArgs","ka","objectKeys","kb","objEquiv","expectedException","isPrototypeOf","_throws","shouldThrow","_tryBlock","userProvidedMessage","isUnexpectedException","isError","generatedMessage","getMessage","captureStackTrace","stack","fn_name","next_line","substring","inherits","equal","notEqual","deepEqual","deepStrictEqual","notDeepEqual","notDeepStrictEqual","strictEqual","notStrictEqual","throws","doesNotThrow","ifError","descriptors","formatRegExp","format","isString","objects","JSON","isNull","deprecate","msg","noDeprecation","warned","throwDeprecation","traceDeprecation","trace","debugEnviron","debugs","ctx","seen","stylize","stylizeNoColor","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","recurseTimes","primitive","simple","isNumber","formatPrimitive","visibleKeys","arrayToHash","getOwnPropertyNames","formatError","Date","output","braces","toUTCString","formatProperty","formatArray","cur","numLinesEst","reduceToSingleString","substr","ar","re","objectToString","pad","debuglog","NODE_DEBUG","toUpperCase","pid","isNullOrUndefined","isSymbol","months","log","time","getHours","getMinutes","getSeconds","getDate","getMonth","timestamp","kCustomPromisifiedSymbol","callbackifyOnRejected","reason","cb","newReason","promisify","original","promiseResolve","promiseReject","custom","callbackify","callbackified","maybeCb","nextTick","rej","adler","s1","s2","crcTable","table","makeTable","crc","modules","__webpack_require__","_interopRequireDefault","extendMoment","moment","range","INTERVALS","DateRange","startOf","endOf","rangeFromInterval","interval","date","isMoment","isValid","dateWithInterval","dates","rangeFromISOString","isoTimeInterval","momentStrings","isoSplit","parseZone","parseZoneRange","isRange","within","contains","toDate","isoString","_slicedToArray","sliceIterator","_arr","_n","_e","_s","_i","_typeof","_moment2","_es6Symbol2","_es6Symbol","year","quarter","month","week","day","hour","minute","second","sameStartEnd","isSame","sameEndStart","valueOf","adjacent","overlaps","excludeEnd","iteration","exclusive","unit","Infinity","center","excludeStart","oStart","oEnd","endInRange","precise","otherStart","otherEnd","isOtherZeroLength","point","isEqual","intersects","intersect","subtract","normalizeOpts","isCallable","dscr","w","foo","bar","trzy","isValue","symbol","validTypes","NativeSymbol","isNativeSafe","validateSymbol","created","ie11BugWorkaround","HiddenSymbol","description","__description__","__name__","for","globalSymbols","hasInstance","isConcatSpreadable","SymbolPolyfill","search","species","toPrimitive","toStringTag","unscopables","outdatedComputeImagesMaxWidth","outdatedAlterChildren","outdatedAlterData","outdatedAlterNode","outdatedIgnoreNodesFunction","outdatedUriProp","outdatedHtmlProp","outdatedListPrefixRenderersProps","outdatedImagesDimensions","outdatedOnLinkPressProp","outdatedEnableExperimentalPercentWidth","outdatedTriggerTREInvalidation","noSource","debugMessage","customizeHTMLModels","defaultModels","fontMap","TRenderEngine","cssProcessorConfig","isFontSupported","inlinePropertiesBlacklist","inlinePropertiesWhitelist","stylesConfig","isDirective","DataNode","nodeTypes","recursive","namespace","cloneChildren","clone_1","clone_2","clone_3","instruction","sourceCodeLocation","childs","sham","Proxy","compatCategories","displayCategories","propagationCategories","newCompatCategory","retain","emptyProps","flow","withProperty","propagationCategory","propertyValue","compatCategory","displayCategory","isNotEmpty","filtered","overriders","new","emptySymbol","filteredProps","model","isShorthand","fontName","allowedList","ShortMergeRequest","ShortCSSPropertyValidator","cmMultiplicator","inchMultiplicator","ptMultiplicator","defaultCSSProcessorConfig","cm","in","mm","pc","pt","absoluteBorderWidthsPixelMap","medium","thick","thin","absoluteFontSizesPixelMap","small","large","relativeFontSizesCoefficientMap","larger","smaller","pipe","_arity","_pipe","tail","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","_isArray","methodname","isChildEmpty","TPhrasingCtor","previous","childK","collapseWhiteSpaces","normalizeWhitespaces","replaceSegmentBreaks","normalizeZeroWidthWhitespaces","removeConsecutiveSegmentBreaks","removeCollapsibleAroundSegmentBreak","collapseWhiteSpacesWithEastAsianCharset","removeLineBreaksAroundEastAsianDiscardSet","TTextCtor","elementModel","textNode","omit","__importDefault","mod","Tokenizer_1","formTags","Set","pTag","tableSectionTags","ddtTags","rtpTags","openImpliesClose","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","cbs","openTagStart","tagname","attribname","attribvalue","foreignContext","lowerCaseTagNames","lowerCaseTags","lowerCaseAttributeNames","Tokenizer","getAbsoluteIndex","isVoidElement","onopentagname","emitOpenTag","impliesClose","el","endOpenTag","isImplied","onopentagend","_f","lastIndexOf","closeCurrentTag","onselfclosingtag","recognizeSelfClosing","isOpenImplied","onattribname","getAbsoluteSectionStart","onattribdata","onattribend","onattribute","getInstructionName","ondeclaration","name_1","name_2","oncdata","_g","_h","_j","_k","recognizeCDATA","reset","parseComplete","write","pause","resume","parseChunk","decode_codepoint_1","decode_1","isWhitespace","isEndOfTagSection","Sequences","Cdata","CdataEnd","CommentEnd","ScriptEnd","StyleEnd","TitleEnd","_state","sectionStart","_index","bufferOffset","baseState","isSpecial","running","ended","sequenceIndex","trieIndex","trieCurrent","trieResult","entityExcess","entityTrie","xmlDecodeTree","htmlDecodeTree","currentSequence","finish","stateText","fastForwardTo","getSection","stateSpecialStartSequence","isEnd","stateInTagName","stateInSpecialTag","endOfText","stateInClosingTagName","stateCDATASequence","stateInDeclaration","stateInCommentLike","section","isTagStartChar","isASCIIAlpha","startSpecial","stateBeforeTagName","lower","stateBeforeAttributeName","stateBeforeClosingTagName","stateAfterClosingTagName","stateInSelfClosingTag","stateInAttributeName","stateAfterAttributeName","stateBeforeAttributeValue","stateInAttributeValueNoQuotes","handleInAttributeValue","stateInAttributeValueDoubleQuotes","stateInAttributeValueSingleQuotes","stateBeforeDeclaration","stateInProcessingInstruction","stateBeforeComment","stateInSpecialComment","stateBeforeSpecialS","stateBeforeEntity","stateInNamedEntity","determineBranch","emitNamedEntity","BinTrieFlags","HAS_VALUE","allowLegacyEntity","entityStart","emitPartial","MULTI_BYTE","stateBeforeNumericEntity","stateInNumericEntity","decodeNumericEntity","numberStart","entity","parsed","stateInHexEntity","cleanup","shouldContinue","handleTrailingData","decodeMap","fromCodePoint","codePoint","parseFeed","FeedHandler","getFeed","domutils_1","Parser_1","feed","handler","innerText","textContent","getText","getInnerHTML","getOuterHTML","dom_serializer_1","decodeHTML","decodeHTMLStrict","decodeXML","entities_json_1","legacy_json_1","xml_json_1","strictEntityRe","getStrictDecoder","getReplacer","sorter","charAt","secondChar","legacy","replacer","escapeUTF8","encodeNonAsciiHTML","encodeHTML","encodeXML","inverseXML","getInverseObj","xmlReplacer","getInverseReplacer","getASCIIEncoder","inverse","inverseHTML","htmlReplacer","single","multiple","splice","unshift","reNonASCII","singleCharReplacer","getCodePoint","codePointAt","reEscapeChars","findAll","existsOne","findOne","findOneChild","find","recurse","limit","nodes_1","checked","getElementsByTagType","getElementsByTagName","getElementById","getElements","testElement","querying_1","Checks","tag_name","tag_type","tag_contains","getAttribCheck","attrib","combineFuncs","compileTest","funcs","UA_ANCHOR_COL","UA_GRAY","bigMarginTopBottomStyle","marginBottom","lineThroughStyle","italicStyle","monoStyle","boldStyle","spacedBlockStyle","marginRight","anchorStyle","leftBorderQuoteStyle","borderLeftWidth","borderLeftColor","dottedUnderlineStyle","solidUnderlineStyle","listStyles","paddingLeft","preStyles","headerStyle","getReactNativePropsForHeading","native","accessible","getReactNativePropsWithHref","sectioningModelMap","address","mixedUAStyles","article","aside","footer","h1","h2","h3","h4","h5","h6","header","hgroup","nav","unsupportedModelMap","area","attribsModelMap","accesskey","caption","col","colgroup","datalist","track","optgroup","option","param","interactiveModelMap","button","fieldset","form","legend","meter","progress","select","details","dialog","summary","textarea","metadataModelMap","untranslatableModelMap","groupingModelMap","blockquote","getMixedUAStyles","dd","div","dl","dt","figcaption","figure","hr","li","main","menu","ol","pre","xmp","listing","plaintext","ul","tabularModelMap","tbody","td","tfoot","th","thead","tr","renderedEmbeddedModelMap","img","picture","emptyEmbeddedModelMap","audio","canvas","embed","iframe","math","svg","video","editsModelMap","ins","del","textLevelModelMap","em","strong","big","strike","cite","q","dfn","abbr","acronym","ruby","rt","rp","tt","var","samp","kbd","sub","textAlignVertical","sup","u","mark","bdi","bdo","span","br","wbr","childrenRendererContext","renderHTMLConfigPropTypes","bypassAnonymousTPhrasingNodes","enableExperimentalBRCollapsing","enableExperimentalGhostLinesPrevention","enableExperimentalMarginCollapsing","remoteErrorView","remoteLoadingView","debug","renderersProps","WebView","GenericPressable","defaultWebViewProps","pressableHightlightColor","provideEmbeddedHeaders","RenderHTMLConfigProvider","sourceLoaderConfig","defaultRenderError","defaultRenderLoading","asyncGeneratorStep","gen","_next","_throw","info","makeAlphanumMaxlenComputer","allowFontScaling","DEFAULT_TEXT_COLOR","DEFAULT_PRESSABLE_RIPPLE_COLOR","useTNodeChildrenProps","disableMarginCollapsing","renderChild","shouldCollapseChildren","isCollapsible","tchildren","elements","mapCollapsibleChildren","childTnode","childElement","renderIndex","renderLength","useAElementProps","syntheticAnchorOnLinkPress","href","normalizedHref","useAnchorOnLinkPress","punycode","maxInt","tMin","tMax","damp","initialBias","initialN","regexPunycode","regexNonASCII","regexSeparators","errors","baseMinusTMin","stringFromCharCode","RangeError","mapDomain","ucs2decode","extra","ucs2encode","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","decode","basic","oldi","baseMinusT","inputLength","bias","encode","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","define","factory","_IPv6","IPv6","best","_segments","segments","total","_best","_current","inzeroes","noConflict","_SecondLevelDomains","SecondLevelDomains","SLD","domain","tldOffset","sldOffset","sldList","is","specifiedDimensions","nomalizedSource","useState","cachedNaturalHeight","useEffect","setNaturalDimensions","cachedNaturalWidth","setError","onNaturalDimensions","onError","naturalDimensions","useImageNaturalDimensions","hasCachedDimensions","cancelled","headers","onImageDimensionsSuccess","onsuccess","Image","getImageSizeAsync","dimensions","useFetchedNaturalDimensions","concreteDimensions","flatStyle","getIMGState","cachedDimensions","printWidth","printHeight","specifiedHeight","horizontalSpace","leftMargin","rightMargin","extractHorizontalSpace","maxHeight","minWidth","minHeight","imagesMaxWidth","minBox","maxBox","specifiedWidth","naturalWidth","naturalHeight","computeConcreteDimensions","flattenStyles","scaleUp","aspectRatio","desiredDimensions","minDimensions","scaleDown","maxDimensions","imageStyle","normalizeOptionsWidth","enablePercentWidth","containerDimension","normalizeOptionsHeight","widthProp","normalizeSize","heightProp","styleWidth","styleHeight","deriveSpecifiedDimensionsFromProps","dimension","parseFloat","onImageError","defaultImageStyle","resizeMode","remainingStyle","container","borderless","UserProvidedPressable","useForeground","TouchableNativeFeedback","underlayColor","altBox","overflow","altText","contentWidthContext","getFallbackListStyleTypeFromNestLevel","nestLevel","useOLElementProps","OLElement","ListElement","listType","enableExperimentalRtl","enableRemoveTopMarginIfNested","enableRemoveBottomMarginIfNested","enableDynamicMarkerBoxWidth","listStyleSpecs","removeTopMarginStyle","removeBottomMarginStyle","ownListType","selectedListType","listStyleTypeFallbackRecord","listStyleType","parsedIndex","getStartIndex","providedMarkerTextStyle","extractMarkerTextStyle","itemProps","markerWidth","fixedPaddingRule","paddingValue","markerBoxWidthStyle","getMarkerBoxStyle","dynamicPaddingStyle","position","shrink","pickMarkerTextStyles","zeroMarginTop","zeroMarginBottom","mergedListStyleSpecs","makeMarkerRenderers","listStyleSpecsContext","createSymbolicMarkerRenderer","mapObjIndexed","useULElementProps","ULElement","alignCenter","alignItems","errorText","renderSourcePropTypes","html","onTTreeChange","onHTMLLoaded","RawSourceLoader","isEmptySource","SourceLoaderUri","SourceLoaderDom","SourceLoaderInline","shallowEqual","prop1","prop2","RenderHTMLSource","ttreeEvents","prevSource","subset","groups","charactersToExpression","escapeOnly","pair","character","named","numeric","useNamedReferences","useShortestReferences","toNamed","omitOptionalSemicolons","attribute","toHexadecimal","toDecimal","SDPUtils","random","localCName","generateIdentifier","splitLines","blob","splitSections","getDescription","sections","getMediaSections","matchPrefix","parseCandidate","candidate","foundation","component","protocol","priority","ip","port","relatedAddress","relatedPort","tcpType","ufrag","usernameFragment","writeCandidate","sdp","parseIceOptions","parseRtpMap","payloadType","clockRate","channels","numChannels","writeRtpMap","codec","preferredPayloadType","parseExtmap","writeExtmap","headerExtension","preferredId","parseFmtp","kv","writeFmtp","parameters","parseRtcpFb","parameter","writeRtcpFb","rtcpFeedback","fb","parseSsrcMedia","sp","ssrc","parseSsrcGroup","semantics","ssrcs","getMid","mediaSection","mid","parseFingerprint","algorithm","getDtlsParameters","sessionpart","fingerprints","writeDtlsParameters","setupType","fp","parseCryptoLine","cryptoSuite","keyParams","sessionParams","writeCryptoLine","writeCryptoKeyParams","parseCryptoKeyParams","keyMethod","keySalt","lifeTime","mkiValue","mkiLength","getCryptoParameters","getIceParameters","pwd","password","writeIceParameters","parseRtpParameters","codecs","headerExtensions","fecMechanisms","rtcp","mline","rtpmapline","fmtps","writeRtpDescription","kind","caps","maxptime","extension","parseRtpEncodingParameters","secondarySsrc","encodingParameters","hasRed","hasUlpfec","primarySsrc","flows","apt","encParam","codecPayloadType","rtx","fec","mechanism","bandwidth","maxBitrate","parseRtcpParameters","rtcpParameters","remoteSsrc","cname","rsize","reducedSize","compound","mux","parseMsid","stream","planB","msidParts","parseSctpDescription","maxMessageSize","parseMLine","maxSizeLine","isNaN","sctpPort","fmt","writeSctpDescription","media","sctp","generateSessionId","writeSessionBoilerplate","sessId","sessVer","sessUser","writeMediaSection","transceiver","iceGatherer","getLocalParameters","dtlsTransport","rtpSender","rtpReceiver","msid","sendEncodingParameters","getDirection","getKind","isRejected","parseOLine","username","sessionId","sessionVersion","netType","addressType","isValidSDP","keyList","hasProp","hasElementType","arrA","arrB","dateA","dateB","regexpA","regexpB","$$typeof","allocUnsafe","cloneBuffer","isDeep","copy","ValueParser","bubble","openParentheses","closeParentheses","singleQuote","doubleQuote","backslash","slash","star","uLower","uUpper","plus","isUnicodeRange","whitespacePos","parenthesesOpenPos","balanced","sourceEndIndex","sourceIndex","stringifyNode","customResult","minus","dot","exp","EXP","nextCode","nextNextCode","likeNumber","isRegex","xs","res","camelCase","z","A","B","C","D","E","F","G","H","I","ContextConsumer","ContextProvider","ForwardRef","Fragment","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","objA","objB","compareContext","keysA","keysB","bHasOwnProperty","bind","valueA","valueB","stylis_min","W","M","K","J","N","ca","O","X","da","ea","fa","L","Y","ha","Q","ia","Z","ja","aa","ba","la","ma","R","na","oa","S","U","T","unitlessKeys","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flexPositive","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","stdout","stderr","React__default","UA","browser","getBrowser","device","getCPU","getDevice","getEngine","os","getOS","ua","getUA","setDefaults","getNavigatorInstance","navigator","isIOS13Check","platform","maxTouchPoints","MSStream","_defineProperties","sourceKeys","_objectWithoutPropertiesLoose","_assertThisInitialized","DeviceTypes","BrowserTypes","Chrome","Firefox","Opera","Yandex","Safari","InternetExplorer","Edge","Chromium","Ie","MobileSafari","EdgeChromium","MIUI","SamsungBrowser","OsTypes","IOS","Android","WindowsPhone","Windows","MAC_OS","initialData","isMobile","isTablet","isBrowser","isSmartTV","isConsole","isWearable","mobilePayload","_objectSpread2","vendor","osVersion","checkType","isEdgeChromiumType","isBrowserType","isEdgeType","getIPad13","isMobileSafari","isChromium","isMobileAndTabletType","isMobileOnly","isDesktop","isAndroid","isWinPhone","isIOS","isChrome","isFirefox","isSafari","isOpera","isIE","osName","fullBrowserVersion","browserVersion","major","browserName","mobileVendor","mobileModel","engineName","engineVersion","isEdge","isYandex","deviceType","isIOS13","getIOS13","isIPad13","isIPhone13","isIPod13","isElectron","userAgent","isElectronType","isEdgeChromium","isLegacyEdge","isWindows","isMacOs","isMIUI","isSamsungBrowser","AndroidView","renderWithFragment","viewClassName","BrowserView","ConsoleView","_ref10","CustomView","_ref12","IEView","IOSView","MobileOnlyView","_ref8","MobileView","SmartTVView","_ref9","TabletView","WearableView","_ref11","WinPhoneView","_ref7","deviceDetect","browserMajorVersion","browserFullVersion","broPayload","stvPayload","consolePayload","wearPayload","withOrientationChange","WrappedComponent","_React$Component","_class","isEventListenerAdded","handleOrientationChange","onOrientationChange","onPageLoad","isLandscape","isPortrait","orientation","innerWidth","innerHeight","removeEventListener","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MODEL","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","FACEBOOK","enumerize","enums","str1","str2","lowerize","rgxMapper","arrays","strMapper","windowsVersionMap","ME","XP","Vista","RT","regexes","cpu","EDGE","UAParser","extensions","getResult","_ua","_rgxmap","mergedRegexes","_browser","_cpu","_device","_engine","_os","setUA","CPU","DEVICE","ENGINE","$","jQuery","Zepto","__webpack_amd_options__","_default","_innerSlider","_json2mq","_defaultProps","_innerSliderUtils","_createSuper","_isNativeReflectConstruct","enquire","Slider","innerSlider","slickPrev","slickNext","dontAnimate","slickGoTo","autoPlay","_responsiveMediaHandlers","query","register","_this2","responsive","breakpoints","breakpt","bQuery","unregister","settings","newProps","_this3","resp","toArray","rows","slidesPerRow","newChildren","currentWidth","row","cloneElement","tabIndex","display","InnerSlider","innerSliderRefHandler","_initialState","_lodash","_classnames","_track","_dots","_arrows","_resizeObserverPolyfill","adaptiveHeight","onInit","prevState","onLazyLoad","updateState","adaptHeight","lazyLoadTimer","progressiveLazyLoad","ro","onWindowResized","callbackTimers","setTimeout","observe","onfocus","pauseOnFocus","onSlideFocus","onblur","onSlideBlur","animationEndCallback","clearTimeout","timer","detachEvent","autoplayTimer","disconnect","prevProps","checkImagesLoad","onReInit","setTrackStyle","didPropsChange","debouncedResize","cancel","resizeWindow","updatedState","_trackWidth","_trackLeft","childrenWidths","preClones","postClones","_i2","_trackStyle","childrenCount","trackLeft","images","imagesCount","loadedCount","image","onclick","prevClickHandler","parentNode","focus","onload","onLazyLoadError","_this$props","asNavFor","beforeChange","afterChange","_slideHandler","asNavForIndex","firstBatch","focusOnSelect","clickable","stopPropagation","ontouchmove","returnValue","disableBodyScroll","triggerSlideHandler","enableBodyScroll","nextIndex","playType","play","autoplaySpeed","pauseType","dots","prevArrow","nextArrow","trackProps","pauseOnHover","onMouseEnter","onTrackOver","onMouseLeave","onTrackLeave","onMouseOver","selectHandler","dotProps","pauseOnDotsHover","clickHandler","onDotsLeave","onDotsOver","Dots","arrowProps","arrows","PrevArrow","NextArrow","verticalHeightStyle","centerPaddingStyle","listStyle","touchMove","onMouseDown","onMouseMove","onMouseUp","onTouchStart","onTouchMove","onTouchEnd","touchEnd","onTouchCancel","onKeyDown","innerSliderProps","listRefHandler","Track","trackRefHandler","ssrState","ssrInit","_i3","_Object$keys","currentDirection","initialized","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","nativeMax","nativeMin","toNumber","isObjectLike","isBinary","wait","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","debounced","isInvoking","leadingEdge","flush","getSlideClasses","slickActive","slickCenter","slickCloned","getKey","fallbackKey","renderSlides","preCloneSlides","postCloneSlides","childOnClickOptions","childStyle","getSlideStyle","slideClass","slideClasses","outline","preCloneNo","_React$PureComponent","mouseEvents","handleRef","_rightBound","rightBound","_leftBound","leftBound","dotOptions","customPaging","appendDots","dotsClass","prevClasses","prevHandler","prevArrowProps","customProps","_React$PureComponent2","_super2","nextClasses","nextHandler","nextArrowProps","MapShim","getIndex","entry","class_1","__entries__","delete","clear","global$1","requestAnimationFrame$1","requestAnimationFrame","transitionKeys","mutationObserverSupported","MutationObserver","ResizeObserverController","connected_","mutationEventsAdded_","mutationsObserver_","observers_","onTransitionEnd_","refresh","delay","leadingCall","trailingCall","resolvePending","proxy","timeoutCallback","timeStamp","throttle","addObserver","observer","connect_","removeObserver","observers","disconnect_","updateObservers_","activeObservers","gatherActive","hasActive","broadcastActive","childList","characterData","subtree","getInstance","instance_","defineConfigurable","getWindowOf","ownerDocument","defaultView","emptyRect","createRectInit","toFloat","getBordersSize","positions","getHTMLElementContentRect","clientWidth","clientHeight","getComputedStyle","paddings","positions_1","getPaddings","horizPad","vertPad","boxSizing","documentElement","isDocumentElement","vertScrollbar","horizScrollbar","isSVGGraphicsElement","SVGGraphicsElement","SVGElement","getBBox","getContentRect","bbox","getSVGContentRect","ResizeObservation","broadcastWidth","broadcastHeight","contentRect_","isActive","rect","broadcastRect","ResizeObserverEntry","rectInit","contentRect","Constr","DOMRectReadOnly","createReadOnlyRect","ResizeObserverSPI","controller","callbackCtx","activeObservations_","observations_","callback_","controller_","callbackCtx_","observations","unobserve","clearActive","observation","WeakMap","ResizeObserver","camel2hyphen","obj2mq","mq","features","feature","isDimension","easing","MediaQueryDispatch","MediaQuery","Util","matchMedia","queries","browserIsIncapable","shouldDegrade","isUnconditional","addHandler","removeHandler","QueryHandler","handlers","mql","listener","currentTarget","assess","addListener","constuctor","qh","equals","destroy","removeListener","action","deferSetup","setup","initialised","off","unmatch","Bar","barStyle","BarStyles","barContainer","Close","rootStyle","iconStyle","activeOpacity","CloseStyles","closeButton","iconLine","FULL_HEIGHT","FULL_WIDTH","PANEL_HEIGHT","STATUS","SwipeablePanel","componentDidMount","openLarge","onlyLarge","onlySmall","_onOrientationChange","dimesions","deviceWidth","deviceHeight","panelHeight","_animateTo","newStatus","smallPanelHeight","newY","showComponent","Animated","toValue","tension","friction","useNativeDriver","restDisplacementThreshold","restSpeedThreshold","canScroll","pan","onStartShouldSetPanResponder","onPanResponderGrant","animatedValueY","onPanResponderMove","gestureState","dy","onPanResponderRelease","componentDidUpdate","noBackgroundOpacity","closeRootStyle","closeIconStyle","allowTouchOutside","closeOnTouchOutside","SwipeablePanelStyles","fullWidth","getTranslateTransform","_panResponder","showCloseButton","contentContainerStyle","scrollViewContentContainerStyle","panel","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","elevation","Readable","QR","png","vector","fn_noop","BITMAP_OPTIONS","customize","VECTOR_OPTIONS","get_options","force_type","_options","matrix","_read","svg_object","bitmap","imageSync","svgObject","calculateEC","_deepCopy","EC_LEVELS","versions","getTemplate","data1","data_len","data10","data27","fillTemplate","template","blocks","ec","ec_len","num_template","level","getMatrix","pushBits","bit","ALPHANUM","bits","encode_numeric","encode_alphanum","path_res","encode_url","encode_8bit","EXP_TABLE","LOG_TABLE","POLYNOMIALS","generatorPolynomial","num","poly","log_k","zeros","fillFinders","pixel","fillAlignAndTiming","fillStub","fillReserved","FORMATS","VERSIONS","mask","fillData","MASK_FUNCTIONS","mask_fn","put","byte","calculatePenalty","penalty","numDark","bestMask","cell","zlib","crc32","PNG_HEAD","PNG_IHDR","PNG_IDAT","PNG_IEND","IHDR","writeUInt32BE","IDAT","deflateSync","Transform","kMaxLength","kRangeErrorMessage","Z_MIN_WINDOWBITS","Z_MAX_WINDOWBITS","Z_DEFAULT_WINDOWBITS","Z_MIN_CHUNK","Z_MAX_CHUNK","Z_DEFAULT_CHUNK","Z_MIN_MEMLEVEL","Z_MAX_MEMLEVEL","Z_DEFAULT_MEMLEVEL","Z_MIN_LEVEL","Z_MAX_LEVEL","Z_DEFAULT_LEVEL","Z_DEFAULT_COMPRESSION","bkeys","bk","bkey","codes","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_MEM_ERROR","Z_BUF_ERROR","Z_VERSION_ERROR","ckeys","ck","ckey","zlibBuffer","buffers","nread","read","once","onEnd","close","zlibBufferSync","flushFlag","_finishFlushFlag","_processChunk","Deflate","Zlib","DEFLATE","Inflate","INFLATE","Gzip","GZIP","Gunzip","GUNZIP","DeflateRaw","DEFLATERAW","InflateRaw","INFLATERAW","Unzip","UNZIP","isValidFlushFlag","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","mode","_opts","_chunkSize","chunkSize","finishFlush","_flushFlag","windowBits","memLevel","strategy","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","dictionary","_handle","_hadError","errno","_close","emit","_buffer","_offset","_level","_strategy","emitCloseNT","createDeflate","createInflate","createDeflateRaw","createInflateRaw","createGzip","createGunzip","createUnzip","deflate","gzip","gzipSync","deflateRaw","deflateRawSync","unzip","unzipSync","inflate","inflateSync","gunzip","gunzipSync","inflateRaw","inflateRawSync","_flush","_transform","alloc","ws","_writableState","ending","needDrain","encoding","availInBefore","availOutBefore","inOff","er","writeSync","req","availInAfter","availOutAfter","have","newReq","Zstream","zlib_deflate","zlib_inflate","constants","init_done","write_in_progress","pending_close","gzip_id_bytes_read","deflateEnd","strm","inflateEnd","in_off","in_len","out_off","out_len","_write","avail_in","next_in","avail_out","next_out","_process","_checkError","_afterSync","_after","next_expected_header_byte","inflateSetDictionary","_init","_setDictionary","_reset","deflateInit2","Z_DEFLATED","inflateInit2","deflateSetDictionary","deflateReset","inflateReset","readUInt8","ctor","superCtor","super_","TempCtor","total_in","total_out","data_type","configuration_table","utils","trees","adler32","Z_UNKNOWN","MAX_MEM_LEVEL","L_CODES","LITERALS","D_CODES","BL_CODES","HEAP_SIZE","MAX_BITS","MIN_MATCH","MAX_MATCH","MIN_LOOKAHEAD","INIT_STATE","HCRC_STATE","BUSY_STATE","FINISH_STATE","BS_NEED_MORE","BS_BLOCK_DONE","BS_FINISH_STARTED","BS_FINISH_DONE","errorCode","rank","zero","flush_pending","pending","pending_buf","pending_out","flush_block_only","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","wrap","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","more","_w_size","window_size","hash_size","insert","ins_h","hash_shift","hash_mask","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","last_lit","deflate_slow","max_insert","prev_match","match_available","Config","good_length","max_lazy","nice_length","max_chain","DeflateState","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","deflateResetKeep","_tr_init","max_block_size","max_start","deflateInit","deflateSetHeader","old_flush","beg","hcrc","bstate","deflate_huff","deflate_rle","_tr_align","_tr_stored_block","avail","tmpDict","dictLength","deflateInfo","Z_BINARY","Z_TEXT","STORED_BLOCK","LENGTH_CODES","Buf_size","MAX_BL_BITS","END_BLOCK","REP_3_6","REPZ_3_10","REPZ_11_138","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","static_dtree","_dist_code","_length_code","base_length","static_l_desc","static_d_desc","static_bl_desc","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","dist","put_short","send_bits","send_code","tree","bi_reverse","gen_codes","next_code","init_block","bi_windup","_n2","_m2","pqdownheap","compress_block","ltree","dtree","lc","lx","build_tree","stree","xbits","gen_bitlen","scan_tree","curlen","prevlen","nextlen","max_count","min_count","send_tree","static_init_done","stored_len","copy_block","tr_static_init","opt_lenb","static_lenb","max_blindex","black_mask","detect_data_type","build_bl_tree","lcodes","dcodes","blcodes","send_all_trees","STATIC_TREES","bi_flush","inflate_fast","inflate_table","LENS","DISTS","HEAD","BAD","ENOUGH_LENS","ENOUGH_DISTS","zswap32","InflateState","havedict","flags","dmax","check","wbits","wsize","whave","wnext","hold","lencode","distcode","lenbits","distbits","ncode","nlen","ndist","lens","work","lendyn","distdyn","sane","back","was","inflateResetKeep","inflateReset2","lenfix","distfix","virgin","fixedtables","updatewindow","inflateInit","_in","_out","from_source","here_bits","here_op","here_val","last_bits","last_op","last_val","here","hbuf","inf_leave","xflags","extra_len","inflateGetHeader","inflateInfo","s_window","lcode","dcode","lmask","dmask","dolen","dodist","MAXBITS","lbase","lext","dbase","dext","lens_index","table_index","incr","low","drop","used","huff","base_index","offs","extra_index","Z_TREES","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","arch","crc_table","update","b0","b1","b2","b3","readUInt32BE","matrix2path","filled","isDark","plot","row0","col0","pushSVGPath","subpath","item","XY","eps","pdf","xref","ReactNativeBiometrics","hasGetUserMedia","mediaDevices","getUserMedia","constraints","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","requestUserMediaId","unmounted","hasUserMedia","requestUserMedia","onUserMediaError","nextProps","audioConstraintsChanged","audioConstraints","videoConstraintsChanged","videoConstraints","minScreenshotWidthChanged","minScreenshotWidth","minScreenshotHeightChanged","minScreenshotHeight","stopAndCleanup","componentWillUnmount","stopMediaStream","getVideoTracks","getAudioTracks","removeTrack","stop","Webcam","URL","revokeObjectURL","getScreenshot","screenshotDimensions","getCanvas","toDataURL","screenshotFormat","screenshotQuality","videoHeight","canvasWidth","videoWidth","canvasHeight","forceScreenshotSourceSize","getContext","mirrored","imageSmoothingEnabled","imageSmoothing","drawImage","sourceSelected","myRequestUserMediaId","handleUserMedia","catch","optional","sourceId","constraint","deviceId","ideal","MediaStreamTrack","getSources","audioSource","videoSource","audioSourceId","videoSourceId","srcObject","createObjectURL","onUserMedia","disablePictureInPicture","videoStyle","childrenProps","muted","playsInline","VIEWBOX_CENTER_X","VIEWBOX_CENTER_Y","Path","counterClockwise","dashRatio","pathRadius","React.createElement","getDashStyle","getPathDescription","rotation","diameter","gapLength","React.Component","getBackgroundPadding","backgroundPadding","getPathRadius","getPathRatio","minValue","maxValue","circleRatio","pathRatio","trail","CircularProgressbarWithChildren","CircularProgressbar","circularProgressbarProps","buildStyles","strokeLinecap","textColor","textSize","pathColor","pathTransition","pathTransitionDuration","trailColor","rotationTransform","rotationTransformOrigin","removeUndefinedValues","stroke","transformOrigin","transitionDuration","RenderHTML","defaultStylesConfig","createStylesConfig","modelRegistry","HTMLModelRegistry","userSelectedFontSize","stylesMerger","TStylesMerger","ignoredTags","ignoreNode","visitors","baseStyles","normalizeDocument","isDomElement","parseDocument","selected","buildTTreeFromDoc","translateDocument","hoistedTDoc","hoistingEnabled","whitespaceCollapsingEnabled","buildTTree","getHTMLElementsModels","dataFlowParams","hoistNode","groupText","wrapperInit","wrapper","wrapperChildren","newNode","userConfig","CSSPropertiesValidationRegistry","compileStyleDeclaration","CSSNativeParseRun","compileInlineCSS","CSSInlineParseRun","parseInlineCSS","inlineCSS","normalizeProp","rawName","camelCaseName","validationMap","shouldRegisterInlineProperty","normalizedValue","getValidatorForProperty","validator","reduceProps","fillProcessedProps","rawTransformed","CSSParseRun","arrayLikeToArray","iter","assertThisInitialized","nativeDirectionalStyleKeys","borderBottomEndRadius","borderBottomStartRadius","borderEndColor","borderEndWidth","borderStartColor","borderStartWidth","borderTopEndRadius","borderTopStartRadius","marginEnd","marginStart","paddingEnd","paddingStart","extraStylesRegistry","includeFontPadding","writingDirection","overlayColor","tintColor","transformMatrix","fillProp","lookupRecord","declaration","makeRegistry","isInlinePropertyAllowed","allowedPropertiesRegistry","ignoredPropertiesRegistry","validators","ShortCSSToReactNativeValidator","ShortCardinalCSSpropertyValidator","LongBorderStyleCSSPropertyValidator","nativeTranslatableBlockRetainModel","ShortFlexCSSPropertyValidator","ShortFontCSSValidator","LongEnumerationCSSPropertyValidator","marginHorizontal","ShortDualNativepropertyValidator","marginVertical","paddingHorizontal","paddingVertical","LongColorCSSPropertyValidator","nativeTranslatableTextRetainModel","nativeTranslatableTextFlowModel","LongFontFamilyPropertyValidator","LongFontSizeCSSValidator","LongEnumerationListCSSPropertyValidator","letterSpacing","LongSizeCSSPropertyValidator","LongNonPercentSizeCSSPropertyValidator","textTransform","LongForgivingCSSPropertyValidator","LongAspectRatioPropertyValidator","LongFloatNumberCSSPropertyValidator","backfaceVisibility","borderBottomColor","borderBottomWidth","LongBorderWidthCSSPropertyValidator","borderRightColor","borderRightWidth","borderTopColor","borderTopWidth","paddingBottom","paddingRight","paddingTop","LongCSSToReactNativeValidator","nativeTranslatableBlockFlowModel","inheritable","translatable","nativeUntranslatableBlockRetainModel","webTextFlowModel","webBlockRetainModel","SEPARATOR_REGEX","normalizedFont","LongCSSPropertyValidator","normalizedVal","ASPECT_RATIO_REGEX","ratio","fallback","WHITESPACE_REGEX","pickFirst","COLOR_REGEX","expanded","isNil","_curry3","_isArrayLike","_xwrap","_iterableReduce","xf","_methodReduce","methodName","symIterator","_arrayReduce","_isString","XWrap","thisObj","_checkForMethod","fromIndex","toIndex","anchor","edits","olNestLevel","ulNestLevel","print","printTableStyles","tnodeSnapshot","parentLeftPrefix","isChild","isLast","totalPrefixLeft","childrenPrint","padStart","tagPrint","unregisteredPrint","indexPrint","idPrint","classesPrint","dataPrint","anchorPrint","srcPrint","pstyles","nativeStylesPrint","oStyles","webStylesPrint","detailsPrint","tnodePropertiesString","COLLAPSIBLE_AROUND_SEGMENT_BREAK_REGEX","CONSECUTIVE_SEGMENT_BREAKS_REGEX","ZERO_WIDTH_SPACES_AROUND_SEGMENT_BREAKS_REGEX","SPACE_DISCARDING_CHARSET_REGEX","SEGMENT_BREAK_REGEX","SUBSEQUENT_WHITESPACE_REGEX","TDocumentCtor","mapNodeList","nextMap","translated","translateNode","nodeList","isDomText","TEmptyCtor","phrasing","translateElement","defaultContextBase","baseHref","charset","getDefaultDocumentContext","htmlModel","TBlockImpl","titleChild","extractContextFromHead","__setModuleDefault","__importStar","RssHandler","DefaultHandler","DomUtils","createDomStream","parseDOM","elementCb","FeedHandler_1","JUMP_OFFSET_BASE","decode_data_html_1","decode_data_xml_1","getDecoder","decodeTree","lastIdx","strIdx","excess","treeIdx","cp","nodeIdx","branchCount","BRANCH_LENGTH","jumpOffset","JUMP_TABLE","lo","hi","midVal","htmlDecoder","xmlDecoder","entities_1","foreignNames_1","unencodedElements","singleTag","renderNode","renderComment","renderCdata","elementNames","foreignModeIntegrationPoints","foreignElements","attributeNames","formatAttributes","selfClosingTags","renderTag","renderText","decodeXMLStrict","decodeHTML5Strict","decodeHTML4Strict","decodeHTML5","decodeHTML4","encodeHTML5","encodeHTML4","decodeStrict","encode_1","encode_2","decode_2","decode_json_1","prevElementSibling","nextElementSibling","hasAttrib","getAttributeValue","getSiblings","getParent","getChildren","emptyArray","siblings","removeElement","prependChild","appendChild","replaceElement","replacement","sibling","currNext","uniqueSort","compareDocumentPosition","removeSubsets","nodeA","nodeB","aParents","bParents","maxIdx","sharedParent","aSibling","bSibling","ancestor","includes","relative","stringify_1","legacy_1","doc","feedRoot","getOneElement","isValidFeed","items","getMediaElements","addConditionally","fetch","pubDate","updated","getAtomFeed","getRssFeed","MEDIA_KEYS_STRING","MEDIA_KEYS_INT","where","isDefault","MEDIA_KEYS_STRING_1","MEDIA_KEYS_INT_1","expression","isIgnored","ignoredTagsCount","OriginalDomHandler","emptyProcessedPropsReg","mapMixedStyleRecordToCSSProcessedPropsReg","regStyles","ownInlinePropsReg","getElementModelFromTagName","userTagOwnProps","userIdOwnProps","userClassesOwnPropsList","dynamicPropsFromAttributes","userAgentTagProps","mergedOwnProps","internalHTMLElementModels","modelRecords","mergeDeepWithKey","mergeDeepRight","lObj","rObj","lVal","rVal","_isObject","mergeWithKey","Linking","defaultAOnPress","pickBy","_objectAssign","mergeRight","nextKey","useRendererConfig","Custom","assembledProps","TDefaultRenderer","InternalRenderer","Default","internalTextRenderers","BRRenderer","WBRRenderer","customRenderers","getCustomRendererForTNode","getDefaultRendererForTNode","internalRenderers","getInternalTextRenderer","getRendererConfigForTNode","isWeb","isFirst","isLonelyBreak","shouldCollapse","renderEmptyLineBreak","IMGRenderer","ULRenderer","OLRenderer","ARenderer","_URI","URI","_urlSupplied","absoluteTo","escapeRegEx","getType","filterArrayValues","lookup","arrayContains","_type","arraysEqual","one","two","trimSlashes","escapeForDumbFirefox36","strictEncodeURIComponent","_parts","hostname","urn","fragment","preventInvalidHostname","duplicateQueryParameters","escapeQuerySpace","protocol_expression","idn_expression","punycode_expression","ip4_expression","ip6_expression","find_uri_expression","findUri","parens","leading_whitespace_expression","ascii_tab_whitespace","defaultPorts","http","https","ftp","gopher","wss","hostProtocols","invalid_hostname_characters","domAttributes","getDomAttribute","nodeName","decodeURIComponent","iso8859","unescape","unicode","characters","pathname","reserved","urnpath","encodeQuery","decodeQuery","_part","generateAccessor","_group","generateSegmentedPathFunction","_sep","_codingFuncName","_innerCodingFuncName","actualCodingFunc","generateSimpleAccessor","build","generatePrefixAccessor","decodePath","decodeUrnPath","recodePath","recodeUrnPath","encodeReserved","parseAuthority","parseHost","bracketPos","firstColon","firstSlash","nextColon","ensureValidHostname","ensureValidPort","parseUserinfo","_string","parseQuery","splits","requireAbsolutePath","buildAuthority","buildHost","buildUserinfo","buildQuery","unique","buildQueryParameter","addQuery","setQuery","removeQuery","hasQuery","withinArray","joinPaths","nonEmptySegments","segment","commonPath","withinString","_start","_end","_trim","_parens","_attributeOpen","ignoreHtml","attributeOpen","parensEnd","parensMatch","parensMatchEnd","hasHostname","rejectEmptyHostname","toASCII","unconflicted","URITemplate","deferBuild","_deferred_build","_object","what","ip4","ip6","sld","idn","_protocol","_port","_hostname","scheme","authority","host","userinfo","resource","subdomain","tld","directory","filename","decodePathSegment","mutatedDirectory","normalizePath","separator","absolute","segmentCoded","setSearch","addSearch","removeSearch","hasSearch","normalizeProtocol","normalizeQuery","normalizeFragment","normalizeHostname","normalizePort","_was_relative","_path","_parent","_pos","_leadingParents","normalizePathname","normalizeSearch","normalizeHash","readable","toUnicode","qp","basedir","resolved","relativeTo","relativeParts","baseParts","common","relativePath","basePath","parents","one_map","two_map","one_query","two_query","extractProps","resizeModeFromFit","mapObjectFit","topMostMarginBottom","precedent","bottomMostMarginTop","_equals","_arrayFromIterator","_includesWith","_functionName","_objectIs","_uniqContentEquals","aIterator","bIterator","stackA","stackB","eq","aItem","typeA","sticky","extendedStackA","extendedStackB","pred","_isArguments","hasEnumBug","nonEnumerableProps","hasArgsEnumBug","nIdx","ks","checkArgsLength","sourceLoaderContext","resolvedHTML","loadHTMLResource","loadState","useUriSourceLoader","RenderTTree","ERROR_STATE","response","trenderEngine","updateNumber","useTTreeChangeEffect","metadata","useInlineSourceLoader","rendererProps","hasSpecialInternalRenderer","specialRenderersConfig","hook","boxModelStyle","pickBorderBox","otherStyle","omitBorderBox","borderBoxProps","domNodeToHTMLString","strChildren","convertedNode","reporter","strAttributes","renderOpeningTag","xtend","core","smart","dangerous","entities","defaultStyles","willChange","overflowY","WebkitOverflowScrolling","visibility","Sidebar","_Component","sidebarWidth","defaultSidebarWidth","touchIdentifier","touchStartX","touchCurrentX","dragSupported","overlayClicked","onScroll","saveSidebarRef","_inheritsLoose","isIos","saveSidebarWidth","isTouching","ev","touch","targetTouches","identifier","ind","touchWidth","touchSidebarWidth","dragToggleDistance","onSetOpen","inCancelDistanceOnScroll","pullRight","sidebar","dragHandle","sidebarStyle","contentStyle","overlayStyle","overlay","useTouch","rootProps","rootClassName","rootId","hasBoxShadow","shadow","docked","percentage","transitions","dragHandleStyle","touchHandleWidth","sidebarClassName","sidebarId","overlayClassName","overlayId","contentClassName","contentId","_require","getDeviceId","havePropsChanged","getFacingModePattern","createBlob","workerBlob","propsKeys","Reader","els","mirrorVideo","initiate","initiateLegacyMode","handleVideo","handleLoadStart","handleInputChange","clearComponent","handleReaderLoad","openImageDialog","handleWorkerMessage","setRefFactory","worker","Worker","onmessage","legacyMode","changedProps","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","timeout","return","terminate","stopCamera","reader","facingMode","supported","getSupportedConstraints","frameRate","preview","mozSrcObject","webkitURL","streamTrack","getTracks","streamLabel","onLoad","_props2","resolution","_els","hozOffset","vertOffset","_ratio","previewIsPlaying","readyState","HAVE_ENOUGH_DATA","imageData","getImageData","postMessage","_props3","onScan","FileReader","selectedImg","files","readAsDataURL","click","_props4","onImageLoad","showViewFinder","hiddenStyle","previewStyle","videoPreviewStyle","imgPreviewStyle","accept","onChange","isRequired","bool","oneOf","any","NoVideoInputDevicesError","defaultDeviceIdChooser","filteredDevices","videoDevices","chooseDeviceId","enumerateDevices","devices","pattern","Blob","BlobBuilder","MSBlobBuilder","MozBlobBuilder","WebKitBlobBuilder","getBlob","dtlsRole","trackId","_initialTrackId","getCommonCapabilities","localCapabilities","remoteCapabilities","commonCapabilities","findCodecByPayloadType","rtxCapabilityMatches","lRtx","rRtx","lCodecs","rCodecs","lCodec","rCodec","lHeaderExtension","rHeaderExtension","isActionAllowedInSignalingState","signalingState","offer","setLocalDescription","setRemoteDescription","answer","maybeAddCandidate","iceTransport","alreadyAdded","getRemoteCandidates","remoteCandidate","addRemoteCandidate","makeError","NotSupportedError","InvalidStateError","InvalidAccessError","OperationError","edgeVersion","addTrackToStreamAndFireEvent","addTrack","dispatchEvent","MediaStreamTrackEvent","fireAddTrack","streams","trackEvent","Event","_dispatchEvent","RTCPeerConnection","_eventTarget","createDocumentFragment","canTrickleIceCandidates","needNegotiation","localStreams","remoteStreams","_localDescription","_remoteDescription","iceConnectionState","connectionState","iceGatheringState","usingBundle","bundlePolicy","rtcpMuxPolicy","iceTransportPolicy","iceServers","hasTurn","server","urls","filterIceServers","_iceGatherers","iceCandidatePoolSize","RTCIceGatherer","gatherPolicy","_config","transceivers","_sdpSessionId","_sdpSessionVersion","_dtlsRole","_isClosed","onicecandidate","onaddstream","ontrack","onremovestream","onsignalingstatechange","oniceconnectionstatechange","onconnectionstatechange","onicegatheringstatechange","onnegotiationneeded","ondatachannel","_emitGatheringStateChange","getConfiguration","getLocalStreams","getRemoteStreams","_createTransceiver","doNotAdd","hasBundleTransport","recvEncodingParameters","associatedRemoteMediaStreams","wantReceive","transports","_createIceAndDtlsTransports","_maybeFireNegotiationNeeded","RTCRtpSender","addStream","clonedStream","clonedTrack","enabled","sender","removeStream","getSenders","getReceivers","_createIceGatherer","sdpMLineIndex","bufferedCandidateEvents","bufferCandidates","_gather","onlocalcandidate","evt","sdpMid","cand","serializedCandidate","complete","RTCIceTransport","onicestatechange","_updateIceConnectionState","_updateConnectionState","RTCDtlsTransport","ondtlsstatechange","_disposeIceAndDtlsTransports","_transceive","send","recv","encodings","receive","isIceLite","remoteIceParameters","remoteDtlsParameters","_updateSignalingState","receiverList","iceOptions","remoteMsid","isComplete","cands","setTransport","setRemoteCandidates","MediaStream","RTCRtpReceiver","getCapabilities","isNewTrack","nativeTrack","removeTrackFromStreamAndFireEvent","sid","newState","states","checking","connected","completed","disconnected","failed","connecting","createOffer","numAudioTracks","numVideoTracks","offerOptions","mandatory","offerToReceiveAudio","offerToReceiveVideo","remoteCodec","hdrExt","rHdrExt","getLocalCandidates","RTCSessionDescription","createAnswer","mediaSectionsInOffer","localTrack","addIceCandidate","candidateString","getStats","senderOrReceiver","promises","allStats","results","stats","stat","ortcObjectName","nativeGetstats","nativeStats","mapStats","inboundrtp","outboundrtp","candidatepair","localcandidate","remotecandidate","methods","nativeMethod","installedModules","moduleId","getter","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","componentName","propFullName","secret","getShim","ReactPropTypes","arrayOf","elementType","instanceOf","objectOf","shape","exact","checkPropTypes","api","locals","getTarget","styleTarget","HTMLIFrameElement","contentDocument","stylesInDom","getIndexByIdentifier","modulesToDom","idCountMap","identifiers","sourceMap","references","updater","addStyle","insertStyleElement","setAttribute","textStore","replaceText","applyToSingletonTag","cssText","cssNode","createTextNode","applyToTag","removeAttribute","btoa","singleton","singletonCounter","styleIndex","removeStyleElement","newObj","atob","lastIdentifiers","newList","newLastIdentifiers","___CSS_LOADER_API_IMPORT___","useSourceMap","base64","cssMapping","sourceMapping","sourceURLs","cssWithMappingToString","mediaQuery","dedupe","alreadyImportedModules","getRange","cuRange","tbRange","headRange","dupRange","setSelectionRange","begin","selectionStart","selectionEnd","selection","createRange","createTextRange","setEndPoint","duplicate","moveToElementText","isValidIPItemValue","IPut","defaultValue","handleChange","onPropsChange","handleKeyDown","domId","handlePaste","clipboardData","getData","pasteData","oldValue","onPaste","_concat","set1","set2","len1","len2","_curryN","received","combined","argsIdx","combinedIdx","curryN","addIndex","origFn","adjust","_idx","_list","_isTransformer","_dispatchable","methodNames","transducer","_reduced","XAll","_xfBase","_map","functor","_reduce","XMap","_xmap","isInteger","nth","paths","pathsArray","_isInteger","pathAr","pluck","allPass","preds","always","and","XAny","anyPass","ap","applyF","applyX","_aperture","XAperture","full","store","getCopy","aperture","vals","mapValues","applySpec","applyTo","ascend","bb","assoc","assocPath","nextObj","nAry","binary","_isFunction","liftN","arity","lifted","lift","both","curry","_makeFlat","flatt","jlen","ilen","_flatCat","rxf","preservingReduced","chain","monad","_cloneRegExp","_clone","refFrom","refTo","deep","copiedValue","comparator","complement","compose","composeK","_pipeP","pipeP","composeP","_identity","pipeWith","headList","tailList","composeWith","_indexOf","inf","_includes","_quote","_toISOString","toISOString","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","toFixed","_complement","_filter","XFilter","filterable","_toString","recur","mapPairs","NaN","repr","cond","pairs","constructN","Fn","$0","$1","$2","$3","$4","$5","$6","$7","$8","$9","converge","fns","XReduceBy","valueFn","valueAcc","keyFn","inputs","reduceBy","elt","countBy","dec","defaultTo","descend","hasOrAdd","shouldAdd","prevSize","_items","_nativeSet","bIdx","_Set","difference","firstLen","secondLen","toFilterOut","differenceWith","dissoc","dissocPath","divide","XDrop","XTake","take","dropLast","XDropLast","_dropLast","dropLastWhile","XDropLastWhile","retained","_dropLastWhile","XDropRepeatsWith","seenFirstValue","sameAsLast","_xdropRepeatsWith","dropRepeatsWith","dropRepeats","XDropWhile","dropWhile","or","either","takeLast","endsWith","eqBy","eqProps","obj1","obj2","evolve","transformations","transformation","XFind","found","XFindIndex","findIndex","XFindLast","findLast","XFindLastIndex","findLastIndex","flip","forEachObjIndexed","fromPairs","groupBy","groupWith","nextidx","gt","gte","hasPath","hasIn","identical","ifElse","onTrue","onFalse","inc","indexBy","innerJoin","ys","insertAll","elts","uniqBy","appliedItem","uniq","intersection","list1","list2","lookupList","filteredList","intersperse","objOf","_stepCatArray","_stepCatString","_stepCatObject","into","_stepCat","invert","invertObj","invoker","Ctor","juxt","keysIn","_isNumber","setter","toFunctorFn","lensIndex","lensPath","lensProp","lt","lte","mapAccum","tuple","mapAccumRight","mathMod","maxBy","sum","mean","median","memoizeWith","mFn","mergeAll","mergeDeepLeft","mergeDeepWith","mergeLeft","mergeWith","_l","_r","minBy","modulo","move","to","positiveFrom","positiveTo","multiply","negate","nthArg","_of","of","called","_assertPromise","otherwise","Identity","over","fst","snd","_createPartialApplicator","partial","partialRight","partition","pathEq","pathOr","pathSatisfies","propPath","pickAll","pipeK","product","useWith","transformers","project","propEq","propIs","propOr","propSatisfies","ps","reduceRight","reduceWhile","reduced","times","repeat","traversable","sortBy","sortWith","splitAt","splitEvery","splitWhen","startsWith","symmetricDifference","symmetricDifferenceWith","takeLastWhile","XTakeWhile","takeWhile","XTap","tap","andThen","toLower","toPairs","toPairsIn","toUpper","transduce","transpose","outerlist","innerlist","traverse","beginRx","endRx","tryCatch","tryer","catcher","unapply","unary","uncurryN","endIdx","currentDepth","unfold","seed","union","uniqWith","unionWith","unless","whenFalseFn","unnest","until","valuesIn","vs","Const","when","whenTrueFn","testObj","whereEq","without","xor","xprod","zip","rv","zipObj","zipWith","thunkify","fnArgs","isMergeableObject","isNonNullObject","stringValue","REACT_ELEMENT_TYPE","isReactElement","cloneUnlessOtherwiseSpecified","deepmerge","defaultArrayMerge","arrayMerge","sourceIsArray","destination","mergeObject","deepmerge_1","objectProto","nativeObjectToString","symToStringTag","getRawTag","isOwn","unmasked","baseGetTag","overArg","getPrototype","funcProto","funcToString","objectCtorString","proto","listCacheClear","__data__","assocIndexOf","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","stackClear","stackDelete","stackGet","stackHas","coreJsData","maskSrcKey","uid","IE_PROTO","isMasked","toSource","reIsHostCtor","reIsNative","baseIsNative","getValue","getNative","nativeCreate","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","mapCacheClear","isKeyable","getMapData","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","stackSet","LARGE_ARRAY_SIZE","Stack","arrayEach","iteratee","baseAssignValue","assignValue","objValue","copyObject","customizer","isNew","newValue","baseTimes","baseIsArguments","reIsUint","isIndex","isLength","typedArrayTags","baseIsTypedArray","baseUnary","nodeIsTypedArray","isTypedArray","arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","isPrototype","nativeKeys","baseKeys","isArrayLike","baseAssign","nativeKeysIn","baseKeysIn","isProto","baseAssignIn","copyArray","arrayFilter","resIndex","stubArray","nativeGetSymbols","getSymbols","copySymbols","arrayPush","getSymbolsIn","copySymbolsIn","baseGetAllKeys","keysFunc","symbolsFunc","getAllKeys","getAllKeysIn","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ctorString","initCloneArray","cloneArrayBuffer","arrayBuffer","byteLength","cloneDataView","dataView","byteOffset","reFlags","cloneRegExp","regexp","symbolProto","symbolValueOf","cloneSymbol","cloneTypedArray","typedArray","initCloneByTag","objectCreate","baseCreate","initCloneObject","baseIsMap","nodeIsMap","isMap","baseIsSet","nodeIsSet","isSet","argsTag","funcTag","objectTag","cloneableTags","baseClone","bitmask","isFlat","isFull","isFunc","stacked","subValue","arrayMap","memoize","resolver","memoized","Cache","memoizeCapped","rePropName","reEscapeChar","stringToPath","subString","toKey","symbolToString","baseToString","toPath","cloneDeep","CLONE_DEEP_FLAG","FormikContext","FormikProvider","Provider","FormikConsumer","Consumer","useFormikContext","formik","isEmptyArray","isEmptyChildren","getIn","def","setIn","resVal","pathArray","currentPath","currentObj","nextPath","setNestedObjectValues","visited","emptyErrors","emptyTouched","useFormik","validateOnChange","validateOnBlur","validateOnMount","isInitialValid","enableReinitialize","onSubmit","initialValues","initialErrors","initialTouched","initialStatus","isMounted","fieldRegistry","setIteration","stateRef","touched","isSubmitting","isValidating","submitCount","dispatch","payload","formikReducer","runValidateHandler","maybePromisedErrors","actualException","runValidationSchema","validationSchema","schema","field","normalizedValues","prepareDataForValidation","abortEarly","validateYupSchema","yupError","yupToFormErrors","runSingleFieldLevelValidation","runFieldLevelValidations","fieldKeysWithValidation","fieldValidations","fieldErrorsList","runAllValidations","fieldErrors","schemaErrors","validateErrors","validateFormWithHighPriority","useEventCallback","combinedErrors","resetForm","dispatchFn","maybePromisedOnReset","validateField","maybePromise","registerField","validate","unregisterField","setTouched","shouldValidate","setErrors","setValues","resolvedValues","setFieldError","setFieldValue","executeChange","eventOrTextValue","maybePath","currentArrayOfValues","isValueInArray","valueProp","getValueForCheckbox","getSelectedValues","setFieldTouched","executeBlur","outerHTML","handleBlur","setFormikState","stateOrCb","setStatus","setSubmitting","submitForm","isInstanceOfError","promiseOrUndefined","executeSubmit","_errors","handleSubmit","imperativeMethods","validateForm","handleReset","getFieldMeta","initialValue","initialError","getFieldHelpers","setValue","getFieldProps","isAnObject","nameOrOptions","valueState","onBlur","dirty","Formik","formikbag","innerRef","shouldClone","useIsomorphicLayoutEffect","connect","Comp","componentDisplayName","hoistNonReactStatics","_action","onReset","Form","copyArrayLike","arrayLike","maxIndex","createAlterationHandler","alteration","FieldArrayInner","updateArrayField","updateErrors","alterErrors","updateTouched","alterTouched","fieldError","fieldTouched","handlePush","swap","indexA","handleSwap","handleMove","handleInsert","handleReplace","handleUnshift","handleRemove","handlePop","tmp","arrayHelpers","restOfFormik","logDisabled_","deprecationWarnings_","extractVersion","uastring","expr","wrapPeerConnectionEvent","eventNameToWrap","nativeAddEventListener","nativeEventName","wrappedCallback","modifiedEvent","handleEvent","_eventMap","nativeRemoveEventListener","unwrappedCb","disableLog","disableWarnings","deprecated","oldMethod","newMethod","compactObject","accumulator","isObj","isEmptyObject","walkStats","resultSet","filterStats","outbound","streamStatsType","filteredResult","trackStats","trackIdentifier","trackStat","logging","shimGetUserMedia","browserDetails","constraintsToChrome_","cc","oldname_","oc","mix","advanced","shimConstraints_","remap","face","getSupportedFacingModeLies","dev","shimError_","PermissionDeniedError","PermissionDismissedError","DevicesNotFoundError","ConstraintNotSatisfiedError","TrackStartError","MediaDeviceFailedDueToShutdown","MediaDeviceKillSwitchOn","TabCaptureError","ScreenCaptureError","DeviceCaptureError","constraintName","onSuccess","origGetUserMedia","cs","DOMException","shimGetDisplayMedia","getSourceId","getDisplayMedia","widthSpecified","heightSpecified","frameRateSpecified","chromeMediaSource","chromeMediaSourceId","maxFrameRate","shimMediaStream","webkitMediaStream","shimOnTrack","_ontrack","origSetRemoteDescription","_ontrackpoly","te","shimGetSendersWithDtmf","shimSenderWithDtmf","dtmf","_dtmf","createDTMFSender","_pc","_senders","origAddTrack","origRemoveTrack","origAddStream","origRemoveStream","origGetSenders","senders","shimGetStats","origGetStats","onSucc","onErr","fixChromeStats_","standardReport","report","standardStats","makeMapStats","shimSenderReceiverGetStats","origGetReceivers","receivers","srcElement","shimAddTrackRemoveTrackWithNative","_shimmedLocalStreams","streamId","existingSenders","newSenders","newSender","shimAddTrackRemoveTrack","origGetLocalStreams","nativeStreams","_reverseStreams","_streams","newStream","oldStream","methodObj","replaceInternalStreamId","origSetLocalDescription","internalId","externalStream","internalStream","replaceExternalStreamId","origLocalDescription","streamid","shimPeerConnection","webkitRTCPeerConnection","RTCIceCandidate","fixNegotiationNeeded","sdpSemantics","origMSTEnabled","RTCDtmfSender","RTCDTMFSender","RTCPeerConnectionShim","shimRTCPeerConnection","validTurn","shimReplaceTrack","replaceTrack","setTrack","nativeGetUserMedia","getSettings","nativeGetSettings","applyConstraints","nativeApplyConstraints","preferredMediaSource","mediaSource","RTCTrackEvent","mozRTCPeerConnection","modernStatsTypes","nativeGetStats","shimSenderGetStats","shimReceiverGetStats","shimRemoveStream","shimRTCDataChannel","DataChannel","RTCDataChannel","shimAddTransceiver","origAddTransceiver","addTransceiver","setParametersPromises","initParameters","shouldPerformCheck","sendEncodings","encodingParam","rid","scaleResolutionDownBy","maxFramerate","getParameters","setParameters","shimGetParameters","origGetParameters","shimCreateOffer","origCreateOffer","finally","shimCreateAnswer","origCreateAnswer","shimLocalStreamsAPI","_localStreams","_addTrack","tracks","shimRemoteStreamsAPI","_remoteStreams","_onaddstream","_onaddstreampoly","shimCallbacksAPI","successCallback","failureCallback","withCallback","_getUserMedia","shimConstraints","errcb","shimRTCIceServerUrls","OrigPeerConnection","pcConfig","pcConstraints","newIceServers","generateCertificate","shimTrackEventTransceiver","shimCreateOfferLegacy","audioTransceiver","getTransceivers","setDirection","videoTransceiver","shimAudioContext","AudioContext","webkitAudioContext","shimRTCIceCandidate","NativeRTCIceCandidate","nativeCandidate","parsedCandidate","augmentedCandidate","shimMaxMessageSize","_sctp","mLine","sctpInDescription","getRemoteFirefoxVersion","canSendMMS","remoteIsFirefox","canSendMaxMessageSize","getCanSendMaxMessageSize","remoteMMS","getMaxMessageSize","POSITIVE_INFINITY","shimSendThrowTypeError","origCreateDataChannel","createDataChannel","dataChannel","wrapDcSend","channel","dc","origDataChannelSend","shimConnectionState","_onconnectionstatechange","origMethod","_connectionstatechangepoly","_lastConnectionState","newEvent","removeExtmapAllowMixed","nativeSRD","shimAddIceCandidateNullOrEmpty","nativeAddIceCandidate","adapter","shimChrome","shimFirefox","shimEdge","shimSafari","isSecureContext","supportsUnifiedPlan","RTCRtpTransceiver","commonShim","chromeShim","browserShim","firefoxShim","edgeShim","safariShim","adapterFactory","EmailShareButton","subject","EmailIcon","FacebookShareButton","hashtag","FacebookIcon","TelegramShareButton","TelegramIcon","WhatsappShareButton","WhatsappIcon","TwitterShareButton","via","hashtags","related","TwitterIcon","LinkedinShareButton","mini","LinkedinIcon","RedditShareButton","RedditIcon","PocketShareButton","PocketIcon","_console","alreadyWarned","_len2","_key2","loadNamespaces","i18n","isInitialized","useTranslation","i18nFromProps","I18nContext","i18nFromContext","defaultNSFromContext","defaultNS","getI18n","reportNamespaces","ReportNamespaces","notReadyT","retNotReady","ready","react","i18nOptions","getDefaults","useSuspense","keyPrefix","namespaces","addUsedNamespaces","initializedStoreOnce","languages","lng","fallbackLng","lastLng","loadNotPending","services","backendConnector","bindI18n","backend","isLanguageChangingTo","hasResourceBundle","hasLoadedNamespace","getT","getFixedT","nsMode","_useState","_useState2","setT","bindI18nStore","boundReset","isInitial"],"mappings":"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AAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,MAAO,KAAM,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,MAAO,KAAM,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,MAAO,KAAM,KAAM,IAAK,EAAG,EAAG,EAAG,IAAK,IAAK,EAAG,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,IAAK,EAAG,EAAG,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,EAAG,KAAM,EAAG,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,EAAG,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,KAAM,EAAG,KAAM,EAAG,EAAG,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,MAAO,GAAI,GAAI,MAAO,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,GAAI,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,EAAG,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,IAAK,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,EAAG,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,GAAI,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,KAAM,EAAG,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,KAAM,EAAG,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,MAAO,GAAI,GAAI,MAAO,GAAI,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,KAAM,EAAG,KAAM,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,KAAM,EAAG,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,GAAI,GAAI,MAAO,GAAI,GAAI,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,KAAM,EAAG,KAAM,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,KAAM,EAAG,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,GAAI,KAAM,KAAM,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,GAAI,GAAI,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,GAAI,MAAO,EAAG,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,KAAM,EAAG,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,KAAM,EAAG,EAAG,EAAG,EAAG,EAAG,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,KAAM,EAAG,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,KAAM,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,GAAI,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,KAAM,EAAG,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,KAAM,KAAM,EAAG,EAAG,EAAG,EAAG,KAAM,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,GAAI,MAAO,GAAI,KAAM,KAAM,EAAG,EAAG,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,KAAM,EAAG,EAAG,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,EAAG,KAAM,IAAK,KAAM,EAAG,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,GAAI,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,GAAI,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,GAAI,IAAK,KAAM,KAAM,KAAM,MAAO,GAAI,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,MAAO,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,GAAI,IAAK,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,KAAM,KAAM,EAAG,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,KAAM,EAAG,EAAG,KAAM,EAAG,EAAG,KAAM,EAAG,EAAG,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,EAAG,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,MAAO,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,EAAG,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,GAAI,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,KAAM,KAAM,EAAG,EAAG,KAAM,GAAI,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,GAAI,GAAI,MAAO,GAAI,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,EAAG,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,IAAK,GAAI,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,MAAO,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,KAAM,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,GAAI,KAAM,KAAM,MAAO,KAAM,GAAI,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,GAAI,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,GAAI,MAAO,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,KAAM,EAAG,KAAM,EAAG,KAAM,KAAM,EAAG,EAAG,KAAM,KAAM,EAAG,KAAM,EAAG,KAAM,KAAM,KAAM,EAAG,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,KAAM,EAAG,EAAG,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,KAAM,EAAG,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,EAAG,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,KAAM,EAAG,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,KAAM,KAAM,KAAM,EAAG,EAAG,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,GAAI,MAAO,KAAM,IAAK,KAAM,EAAG,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,MAAO,MAAO,GAAI,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,IAAK,KAAM,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,IAAK,GAAI,IAAK,KAAM,KAAM,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,GAAI,IAAK,GAAI,IAAK,KAAM,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,KAAM,KAAM,KAAM,MAAO,KAAM,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,MAAO,GAAI,IAAK,GAAI,IAAK,KAAM,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,KAAM,IAAK,KAAM,EAAG,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,MAAO,GAAI,GAAI,MAAO,KAAM,MAAO,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,KAAM,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,KAAM,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,MAAO,EAAG,MAAO,EAAG,MAAO,MAAO,MAAO,EAAG,MAAO,MAAO,EAAG,EAAG,MAAO,MAAO,MAAO,MAAO,MAAO,EAAG,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,MAAO,EAAG,MAAO,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,MAAO,EAAG,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,KAAM,MAAO,EAAG,MAAO,EAAG,MAAO,EAAG,EAAG,EAAG,EAAG,EAAG,MAAO,MAAO,EAAG,MAAO,MAAO,MAAO,EAAG,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,IAAK,GAAI,MAAO,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,GAAI,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,MAAO,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,GAAI,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,GAAI,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,MAAO,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,MAAO,GAAI,GAAI,MAAO,KAAM,MAAO,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,MAAO,EAAG,MAAO,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,MAAO,EAAG,MAAO,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,KAAM,MAAO,EAAG,EAAG,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,KAAM,GAAI,MAAO,GAAI,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,GAAI,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,KAAM,MAAO,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,MAAO,EAAG,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,EAAG,EAAG,MAAO,MAAO,EAAG,MAAO,MAAO,EAAG,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,KAAM,MAAO,EAAG,EAAG,MAAO,EAAG,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,GAAI,IAAK,GAAI,MAAO,KAAM,KAAM,MAAO,EAAG,MAAO,EAAG,MAAO,MAAO,EAAG,MAAO,MAAO,EAAG,EAAG,MAAO,MAAO,EAAG,MAAO,EAAG,EAAG,MAAO,MAAO,EAAG,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,MAAO,EAAG,EAAG,MAAO,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,MAAO,GAAI,GAAI,MAAO,GAAI,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,IAAK,GAAI,MAAO,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,GAAI,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,GAAI,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,EAAG,MAAO,MAAO,EAAG,EAAG,MAAO,MAAO,EAAG,MAAO,MAAO,MAAO,KAAO,MAAO,MAAO,MAAO,EAAG,MAAO,EAAG,EAAG,MAAO,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,MAAO,EAAG,MAAO,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,GAAI,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,KAAM,MAAO,EAAG,EAAG,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,KAAM,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,GAAI,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,EAAG,MAAO,MAAO,EAAG,EAAG,EAAG,EAAG,EAAG,MAAO,MAAO,EAAG,MAAO,MAAO,EAAG,EAAG,EAAG,MAAO,KAAM,MAAO,EAAG,EAAG,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,MAAO,EAAG,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,GAAI,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,MAAO,EAAG,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,GAAI,MAAO,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,KAAM,MAAO,EAAG,EAAG,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,KAAM,MAAO,EAAG,EAAG,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,GAAI,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,MAAO,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,MAAO,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,GAAI,IAAK,MAAO,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,KAAM,KAAM,GAAI,MAAO,KAAM,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,MAAO,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,MAAO,KAAM,IAAK,GAAI,IAAK,MAAO,MAAO,MAAO,KAAM,GAAI,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,KAAM,MAAO,MAAO,EAAG,MAAO,EAAG,MAAO,MAAO,EAAG,EAAG,MAAO,MAAO,MAAO,MAAO,EAAG,EAAG,MAAO,MAAO,EAAG,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,MAAO,IAAK,IAAK,GAAI,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,GAAI,MAAO,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,MAAO,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,GAAI,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,MAAO,MAAO,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,MAAO,IAAK,GAAI,MAAO,IAAK,KAAM,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,GAAI,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,GAAI,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,GAAI,MAAO,IAAK,IAAK,IAAK,IAAK,MAAO,MAAO,IAAK,IAAK,IAAK,GAAI,MAAO,KAAM,GAAI,GAAI,MAAO,IAAK,IAAK,GAAI,MAAO,MAAO,MAAO,GAAI,IAAK,GAAI,MAAO,KAAM,IAAK,IAAK,G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","file":"static/js/9.263ce98f.chunk.js","sourcesContent":["var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","var defineProperty = require(\"./defineProperty.js\");\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread2;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\n\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn.js\");\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return possibleConstructorReturn(this, result);\n };\n}\n\nmodule.exports = _createSuper;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","Object.defineProperty(exports,\"__esModule\",{value:true});var _extends=Object.assign||function(target){for(var i=1;i=0)continue;if(!Object.prototype.hasOwnProperty.call(obj,i))continue;target[i]=obj[i];}return target;}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError(\"Cannot call a class as a function\");}}function _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;}function _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;}var LinearGradient=function(_PureComponent){_inherits(LinearGradient,_PureComponent);function LinearGradient(){var _ref;var _temp,_this,_ret;_classCallCheck(this,LinearGradient);for(var _len=arguments.length,args=Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}return _ret=(_temp=(_this=_possibleConstructorReturn(this,(_ref=LinearGradient.__proto__||Object.getPrototypeOf(LinearGradient)).call.apply(_ref,[this].concat(args))),_this),_this.state={width:1,height:1},_this.measure=function(event){_this.setState({width:event.nativeEvent.layout.width,height:event.nativeEvent.layout.height});if(_this.props.onLayout){_this.props.onLayout(event);}},_this.getAngle=function(){if(_this.props.useAngle){return _this.props.angle+'deg';}var angle=Math.atan2(_this.state.width*(_this.props.end.y-_this.props.start.y),_this.state.height*(_this.props.end.x-_this.props.start.x))+Math.PI/2;return angle+'rad';},_this.getColors=function(){return _this.props.colors.map(function(color,index){var location=_this.props.locations[index];var locationStyle='';if(location){locationStyle=' '+location*100+'%';}return color+locationStyle;}).join(',');},_temp),_possibleConstructorReturn(_this,_ret);}_createClass(LinearGradient,[{key:'render',value:function render(){var _props=this.props,start=_props.start,end=_props.end,colors=_props.colors,locations=_props.locations,useAngle=_props.useAngle,angleCenter=_props.angleCenter,angle=_props.angle,style=_props.style,children=_props.children,otherProps=_objectWithoutProperties(_props,['start','end','colors','locations','useAngle','angleCenter','angle','style','children']);return _react2.default.createElement(_reactNative.View,_extends({},otherProps,{style:[style,{backgroundImage:'linear-gradient('+this.getAngle()+','+this.getColors()+')'}],onLayout:this.measure,__source:{fileName:_jsxFileName,lineNumber:76}}),children);}}]);return LinearGradient;}(_react.PureComponent);LinearGradient.defaultProps={start:{x:0.5,y:0},end:{x:0.5,y:1},locations:[],colors:[],useAngle:false,angle:0};exports.default=LinearGradient;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DomHandler = void 0;\nvar domelementtype_1 = require(\"domelementtype\");\nvar node_1 = require(\"./node\");\n__exportStar(require(\"./node\"), exports);\nvar reWhitespace = /\\s+/g;\n// Default options\nvar defaultOpts = {\n normalizeWhitespace: false,\n withStartIndices: false,\n withEndIndices: false,\n xmlMode: false,\n};\nvar DomHandler = /** @class */ (function () {\n /**\n * @param callback Called once parsing has completed.\n * @param options Settings for the handler.\n * @param elementCB Callback whenever a tag is closed.\n */\n function DomHandler(callback, options, elementCB) {\n /** The elements of the DOM */\n this.dom = [];\n /** The root element for the DOM */\n this.root = new node_1.Document(this.dom);\n /** Indicated whether parsing has been completed. */\n this.done = false;\n /** Stack of open tags. */\n this.tagStack = [this.root];\n /** A data node that is still being written to. */\n this.lastNode = null;\n /** Reference to the parser instance. Used for location information. */\n this.parser = null;\n // Make it possible to skip arguments, for backwards-compatibility\n if (typeof options === \"function\") {\n elementCB = options;\n options = defaultOpts;\n }\n if (typeof callback === \"object\") {\n options = callback;\n callback = undefined;\n }\n this.callback = callback !== null && callback !== void 0 ? callback : null;\n this.options = options !== null && options !== void 0 ? options : defaultOpts;\n this.elementCB = elementCB !== null && elementCB !== void 0 ? elementCB : null;\n }\n DomHandler.prototype.onparserinit = function (parser) {\n this.parser = parser;\n };\n // Resets the handler back to starting state\n DomHandler.prototype.onreset = function () {\n this.dom = [];\n this.root = new node_1.Document(this.dom);\n this.done = false;\n this.tagStack = [this.root];\n this.lastNode = null;\n this.parser = null;\n };\n // Signals the handler that parsing is done\n DomHandler.prototype.onend = function () {\n if (this.done)\n return;\n this.done = true;\n this.parser = null;\n this.handleCallback(null);\n };\n DomHandler.prototype.onerror = function (error) {\n this.handleCallback(error);\n };\n DomHandler.prototype.onclosetag = function () {\n this.lastNode = null;\n var elem = this.tagStack.pop();\n if (this.options.withEndIndices) {\n elem.endIndex = this.parser.endIndex;\n }\n if (this.elementCB)\n this.elementCB(elem);\n };\n DomHandler.prototype.onopentag = function (name, attribs) {\n var type = this.options.xmlMode ? domelementtype_1.ElementType.Tag : undefined;\n var element = new node_1.Element(name, attribs, undefined, type);\n this.addNode(element);\n this.tagStack.push(element);\n };\n DomHandler.prototype.ontext = function (data) {\n var normalizeWhitespace = this.options.normalizeWhitespace;\n var lastNode = this.lastNode;\n if (lastNode && lastNode.type === domelementtype_1.ElementType.Text) {\n if (normalizeWhitespace) {\n lastNode.data = (lastNode.data + data).replace(reWhitespace, \" \");\n }\n else {\n lastNode.data += data;\n }\n if (this.options.withEndIndices) {\n lastNode.endIndex = this.parser.endIndex;\n }\n }\n else {\n if (normalizeWhitespace) {\n data = data.replace(reWhitespace, \" \");\n }\n var node = new node_1.Text(data);\n this.addNode(node);\n this.lastNode = node;\n }\n };\n DomHandler.prototype.oncomment = function (data) {\n if (this.lastNode && this.lastNode.type === domelementtype_1.ElementType.Comment) {\n this.lastNode.data += data;\n return;\n }\n var node = new node_1.Comment(data);\n this.addNode(node);\n this.lastNode = node;\n };\n DomHandler.prototype.oncommentend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.oncdatastart = function () {\n var text = new node_1.Text(\"\");\n var node = new node_1.NodeWithChildren(domelementtype_1.ElementType.CDATA, [text]);\n this.addNode(node);\n text.parent = node;\n this.lastNode = text;\n };\n DomHandler.prototype.oncdataend = function () {\n this.lastNode = null;\n };\n DomHandler.prototype.onprocessinginstruction = function (name, data) {\n var node = new node_1.ProcessingInstruction(name, data);\n this.addNode(node);\n };\n DomHandler.prototype.handleCallback = function (error) {\n if (typeof this.callback === \"function\") {\n this.callback(error, this.dom);\n }\n else if (error) {\n throw error;\n }\n };\n DomHandler.prototype.addNode = function (node) {\n var parent = this.tagStack[this.tagStack.length - 1];\n var previousSibling = parent.children[parent.children.length - 1];\n if (this.options.withStartIndices) {\n node.startIndex = this.parser.startIndex;\n }\n if (this.options.withEndIndices) {\n node.endIndex = this.parser.endIndex;\n }\n parent.children.push(node);\n if (previousSibling) {\n node.prev = previousSibling;\n previousSibling.next = node;\n }\n node.parent = parent;\n this.lastNode = null;\n };\n return DomHandler;\n}());\nexports.DomHandler = DomHandler;\nexports.default = DomHandler;\n","var _isPlaceholder =\n/*#__PURE__*/\nrequire(\"./_isPlaceholder\");\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\n\nfunction _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}\n\nmodule.exports = _curry1;","import React, { PropsWithChildren, useCallback, useMemo } from 'react';\nimport defaultListStyleSpecs from '../elements/defaultListStyleSpecs';\nimport selectSharedProps from '../helpers/selectSharedProps';\nimport { RenderHTMLSharedProps, RendererBaseProps } from '../shared-types';\nimport defaultSharedProps from './defaultSharedProps';\n\nconst SharedPropsContext = React.createContext(defaultSharedProps);\n\n/**\n * Use shared props. See {@link RenderHTMLSharedProps}.\n *\n * @public\n */\nexport function useSharedProps() {\n return React.useContext(SharedPropsContext);\n}\n\n/**\n * @internal\n */\nexport function useDefaultContainerProps(): Pick<\n RendererBaseProps,\n 'viewProps' | 'textProps'\n> {\n const sharedProps = useSharedProps();\n return {\n viewProps: {\n ...defaultSharedProps.defaultViewProps,\n ...sharedProps.defaultViewProps\n },\n textProps: {\n ...defaultSharedProps.defaultTextProps,\n ...sharedProps.defaultTextProps\n }\n };\n}\n\n/**\n * Compute max width for a given tag. Uses\n * {@link RenderHTMLProps.computeEmbeddedMaxWidth}\n * and {@link RenderHTMLProps.contentWidth} under the hood.\n *\n * @param tagName - The tag to target.\n *\n * @public\n */\nexport function useComputeMaxWidthForTag(tagName: string) {\n const { computeEmbeddedMaxWidth } = useSharedProps();\n return useCallback(\n (cw: number) => {\n return computeEmbeddedMaxWidth(cw, tagName);\n },\n [computeEmbeddedMaxWidth, tagName]\n );\n}\n\n/**\n * @internal\n */\nexport default function SharedPropsProvider(\n props: PropsWithChildren\n) {\n const memoizedSharedProps = useMemo(\n () => ({\n ...selectSharedProps(props),\n customListStyleSpecs: {\n ...defaultListStyleSpecs,\n ...props.customListStyleSpecs\n }\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n Object.values(selectSharedProps(props))\n );\n return React.createElement(\n SharedPropsContext.Provider,\n { value: memoizedSharedProps },\n props.children\n );\n}\n","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","/**\n * Create an alphabetic initial counter representation from an UTF-16 unicode\n * and a range.\n *\n * @param index - The index to render.\n * @param baseCharcode - The original UTF-16 unicode.\n * @param modulo - The number of symbols in the set.\n * @param alpha - In alpha mode, index starts at 1 instead of 0.\n * @returns\n */\nfunction getAlphanumFromUnicodeRange(index, baseCharcode, modulo, alpha) {\n const reindex = index - Number(alpha);\n if (reindex < 0) {\n return undefined;\n }\n if (reindex < modulo) {\n return String.fromCharCode(baseCharcode + reindex);\n }\n const rest = reindex % modulo;\n const next = (reindex - rest - modulo) / modulo + 1;\n return (getAlphanumFromUnicodeRange(next, baseCharcode, modulo, alpha) +\n String.fromCharCode(baseCharcode + rest));\n}\nexport default getAlphanumFromUnicodeRange;\n//# sourceMappingURL=getAlphanumFromUnicodeRange.js.map","export default function codepointLength(source) {\n // get codepoints length instead of UTF16 code units with the string Iterator.\n return (source && [...source].length) || 0;\n}\n//# sourceMappingURL=codepointLength.js.map","/**\n * See https://www.w3.org/TR/css-counter-styles-3/#counter-style-suffix\n *\n * @remarks We are using non-breaking space, otherwise iOS text elements get trimmed.\n */\nexport const DEFAULT_SUFFIX = '\\u002E\\u00A0';\nexport const CJK_SUFFIX = '\\u3001';\n//# sourceMappingURL=constants.js.map","import codepointLength from './utils/codepointLength';\nimport { DEFAULT_SUFFIX } from './constants';\nconst DEFAULT_SPECS = {\n suffix: DEFAULT_SUFFIX,\n prefix: null,\n reversedMarker: false,\n reversedCounter: false,\n fallback: {\n renderCounter: (index) => index.toString(),\n maxCounterLenInRange(min, max) {\n return Math.max(this.renderCounter(min).length, this.renderCounter(max).length);\n }\n },\n negative: null,\n range: {\n min: -Infinity,\n max: Infinity\n },\n padding: null\n};\nconst styleEngineProto = {\n // Cost-inefficient since it requires iterating over the whole range.\n maxLengthInRange(min, max) {\n let len = 0;\n for (let i = Math.max(0, min); i <= max; i++) {\n const val = this.formatter(i);\n len = Math.max(codepointLength(val), len);\n }\n return len;\n },\n withSpecs(spToMerge) {\n const next = Object.create(this);\n next.specs = Object.assign({}, this.specs, spToMerge);\n return next;\n },\n withMaxLengthInRange(cp) {\n const next = Object.create(this);\n next.maxLengthInRange = cp;\n return next;\n }\n};\nexport default function makeCSEngine(formatter, specs = DEFAULT_SPECS) {\n const eng = Object.create(styleEngineProto);\n eng.specs = specs;\n eng.formatter = formatter;\n return eng;\n}\n//# sourceMappingURL=makeCSEngine.js.map","export default function codeunitLength(source) {\n return (source && source.length) || 0;\n}\n//# sourceMappingURL=codeunitLength.js.map","export default function reverseString(source) {\n return Array.from(source).reverse().join('');\n}\n//# sourceMappingURL=reverseString.js.map","import codepointLength from './utils/codepointLength';\nimport codeunitLength from './utils/codeunitLength';\nimport reverseString from './utils/reverseString';\nconst defaultRtlOptions = {\n reverseCounter: false,\n reversePrefix: true,\n reverseSuffix: true\n};\nconst stylePrototype = {\n getAbsoluteMaxLenInRange(normMin, normMax, negative) {\n var _a;\n const specs = this.engine.specs;\n const supportedRange = specs.range;\n const supportedMin = Math.max(normMin, supportedRange.min);\n const supportedMax = Math.min(normMax, supportedRange.max);\n const lenMiddle = Math.max(this.engine.maxLengthInRange(negative ? Math.abs(supportedMax) : supportedMin, negative ? Math.abs(supportedMin) : supportedMax) +\n (negative && specs.negative\n ? codeunitLength(specs.negative.prefix) +\n codeunitLength(specs.negative.suffix)\n : 0), ((_a = specs === null || specs === void 0 ? void 0 : specs.padding) === null || _a === void 0 ? void 0 : _a.length) || 0);\n const lenLeft = supportedMin > normMin\n ? specs.fallback.maxCounterLenInRange(normMin, supportedMin - 1)\n : 0;\n const lenRight = supportedMax < normMax\n ? specs.fallback.maxCounterLenInRange(supportedMax + 1, normMax)\n : 0;\n return Math.max(lenLeft, lenMiddle, lenRight);\n },\n maxCounterLenInRange(min, max) {\n if (max < min) {\n return 0;\n }\n if (min >= 0) {\n return this.getAbsoluteMaxLenInRange(min, max, false);\n }\n if (max <= 0) {\n return this.getAbsoluteMaxLenInRange(min, max, true);\n }\n return Math.max(this.getAbsoluteMaxLenInRange(min, -1, true), this.getAbsoluteMaxLenInRange(0, max, false));\n },\n maxMarkerLenInRange(min, max) {\n if (max < min) {\n return 0;\n }\n return (this.maxCounterLenInRange(min, max) +\n codeunitLength(this.engine.specs.suffix) +\n codeunitLength(this.engine.specs.prefix));\n },\n renderCounter(index) {\n const formatter = this.engine.formatter;\n const sp = this.engine.specs;\n const negative = sp.negative;\n let res;\n if (index < sp.range.min || index > sp.range.max) {\n return sp.fallback.renderCounter(index);\n }\n const decoratorL = negative && index < 0\n ? codeunitLength(negative.prefix) + codeunitLength(negative.suffix)\n : 0;\n res = formatter(Math.sign(index) * index);\n if (typeof res === 'undefined') {\n return sp.fallback.renderCounter(index);\n }\n if (sp.padding) {\n const lenWithDecorator = codepointLength(res) + decoratorL;\n if (lenWithDecorator < sp.padding.length) {\n const padChar = sp.padding.char.repeat(sp.padding.length - lenWithDecorator);\n res = sp.padding.right ? res + padChar : padChar + res;\n }\n }\n if (index < 0 && negative) {\n res = negative.prefix + res + negative.suffix;\n }\n return sp.reversedCounter ? reverseString(res) : res;\n },\n renderMarker(index) {\n const sp = this.engine.specs;\n const elements = [\n sp.prefix || '',\n this.renderCounter(index),\n sp.suffix || ''\n ];\n return sp.reversedMarker ? elements.reverse().join('') : elements.join('');\n },\n renderPrefix() {\n return this.engine.specs.prefix || '';\n },\n renderSuffix() {\n return this.engine.specs.suffix || '';\n },\n withFallback(fallback) {\n return makeCSRenderer(this.engine.withSpecs({ fallback }));\n },\n withRange(min, max, fallback) {\n const result = makeCSRenderer(this.engine.withSpecs({\n range: {\n min,\n max\n }\n }));\n return fallback ? result.withFallback(fallback) : result;\n },\n withNegative(prefix, suffix = '') {\n return makeCSRenderer(this.engine.withSpecs({\n negative: {\n prefix,\n suffix\n }\n }));\n },\n withPadLeft(length, pad) {\n return makeCSRenderer(this.engine.withSpecs({\n padding: {\n right: false,\n char: pad,\n length\n }\n }));\n },\n withPadRight(length, pad) {\n return makeCSRenderer(this.engine.withSpecs({\n padding: {\n right: true,\n char: pad,\n length\n }\n }));\n },\n withSuffix(suffix) {\n return makeCSRenderer(this.engine.withSpecs({\n suffix\n }));\n },\n withPrefix(prefix) {\n return makeCSRenderer(this.engine.withSpecs({\n prefix\n }));\n },\n withRtl(options) {\n const synthOptions = Object.assign({}, defaultRtlOptions, options);\n const sp = this.engine.specs;\n return makeCSRenderer(this.engine.withSpecs({\n reversedMarker: true,\n reversedCounter: synthOptions.reverseCounter,\n suffix: synthOptions.reverseSuffix && sp.suffix\n ? reverseString(sp.suffix)\n : sp.suffix,\n prefix: synthOptions.reversePrefix && sp.prefix\n ? reverseString(sp.prefix)\n : sp.prefix\n }));\n },\n withMaxLengthComputer(computer) {\n return makeCSRenderer(this.engine.withMaxLengthInRange((min, max) => computer(min, max, this.engine.maxLengthInRange.bind(this.engine))));\n }\n};\nexport default function makeCSRenderer(engine) {\n const target = Object.create(stylePrototype);\n target.engine = engine;\n return Object.freeze(target);\n}\n//# sourceMappingURL=makeCSRenderer.js.map","import getAlphanumFromUnicodeRange from './getAlphanumFromUnicodeRange';\nimport makeAlphanumMaxlenComputer from './makeAlphanumMaxlenComputer';\nimport makeCSEngine from './makeCSEngine';\nimport makeCSRenderer from './makeCSRenderer';\nimport codepointLength from './utils/codepointLength';\nconst mod = (value, divisor) => ((value % divisor) + divisor) % divisor;\nfunction makeCSRendererFromFormatter(formatter) {\n return makeCSRenderer(makeCSEngine(formatter));\n}\nfunction getMaxLenInSymbols(lens, from = 0, to) {\n to = typeof to === 'number' ? to : lens.length;\n return lens.slice(from, to + 1).reduce((p, c) => Math.max(p, c), 0);\n}\nfunction numeric(renderer, length) {\n return renderer\n .withMaxLengthComputer(makeAlphanumMaxlenComputer(length, false))\n .withNegative('-');\n}\nfunction alphabetic(renderer, length) {\n return renderer\n .withMaxLengthComputer(makeAlphanumMaxlenComputer(length, true))\n .withRange(1, Infinity);\n}\n/**\n * A static object to build counter style renderers.\n * See {@link CounterStyleStatic}.\n *\n * @public\n */\nconst CounterStyle = Object.freeze({\n raw: (formatter) => {\n return makeCSRendererFromFormatter(formatter);\n },\n cyclic: (...symbols) => {\n const symbolLenghts = symbols.map(codepointLength);\n const maxLen = getMaxLenInSymbols(symbolLenghts);\n const renderer = symbols.length === 1\n ? makeCSRendererFromFormatter(() => symbols[0])\n : makeCSRendererFromFormatter((index) => symbols[mod(index - 1, symbols.length)]);\n return renderer.withMaxLengthComputer((min, max) => {\n return maxLen === 1 || max - min + 1 >= symbols.length\n ? maxLen\n : getMaxLenInSymbols(symbolLenghts, min - 1, max - 1);\n });\n },\n fixed: (...symbols) => {\n const symbolLenghts = symbols.map(codepointLength);\n const maxLen = getMaxLenInSymbols(symbolLenghts);\n return makeCSRendererFromFormatter((index) => symbols[index - 1])\n .withRange(1, symbols.length)\n .withMaxLengthComputer((min, max) => {\n return maxLen === 1\n ? maxLen\n : getMaxLenInSymbols(symbolLenghts, min - 1, max - 1);\n });\n },\n symbolic: (...symbols) => makeCSRendererFromFormatter((index) => symbols[mod(index - 1, symbols.length)].repeat(Math.ceil(index / symbols.length)))\n .withRange(1, Infinity)\n .withMaxLengthComputer((min, max, defaultCmp) => {\n // Just iterate over the last n elements until max, with n the number\n // of symbols.\n return defaultCmp(max < symbols.length ? min : max - symbols.length, max);\n }),\n alphabetic: (...symbols) => {\n return alphabetic(makeCSRendererFromFormatter((index) => {\n let result = '';\n while (index > 0) {\n index--;\n result = symbols[mod(index, symbols.length)] + result;\n index = Math.floor(index / symbols.length);\n }\n return result;\n }), symbols.length);\n },\n numeric: (...symbols) => {\n return numeric(makeCSRendererFromFormatter((index) => {\n if (index === 0) {\n return symbols[0];\n }\n else {\n let result = '';\n while (index > 0) {\n result = symbols[mod(index, symbols.length)] + result;\n index = Math.floor(index / symbols.length);\n }\n return result;\n }\n }), symbols.length);\n },\n numericFromUnicodeRange: (originUnicode, base) => {\n return numeric(makeCSRendererFromFormatter((index) => getAlphanumFromUnicodeRange(index, originUnicode, base, false)), base);\n },\n alphabeticFromUnicodeRange: (originUnicode, alphabetLen) => {\n return alphabetic(makeCSRendererFromFormatter((index) => {\n return getAlphanumFromUnicodeRange(index, originUnicode, alphabetLen, true);\n }), alphabetLen);\n },\n additive: (symbols) => {\n const values = Object.keys(symbols)\n .map((value) => parseInt(value, 10))\n .sort((a, b) => b - a);\n return makeCSRendererFromFormatter((index) => {\n if (index === 0) {\n return symbols[0];\n }\n let result = '';\n for (const value of values) {\n if (index >= value && value > 0) {\n const repeat = Math.floor(index / value);\n result += symbols[value].repeat(repeat);\n index -= repeat * value;\n }\n }\n return index === 0 ? result : undefined;\n }).withRange(values.length ? values[values.length - 1] : 0, 0 in symbols && values.length === 1 ? 0 : values.length ? Infinity : -1);\n }\n});\nexport default CounterStyle;\n//# sourceMappingURL=CounterStyle.js.map","export default function objectToGetParams(object) {\n var params = Object.entries(object)\n .filter(function (_a) {\n var value = _a[1];\n return value !== undefined && value !== null;\n })\n .map(function (_a) {\n var key = _a[0], value = _a[1];\n return encodeURIComponent(key) + \"=\" + encodeURIComponent(String(value));\n });\n return params.length > 0 ? \"?\" + params.join('&') : '';\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React from 'react';\nexport default function createIcon(iconConfig) {\n var Icon = function (_a) {\n var bgStyle = _a.bgStyle, borderRadius = _a.borderRadius, iconFillColor = _a.iconFillColor, round = _a.round, size = _a.size, rest = __rest(_a, [\"bgStyle\", \"borderRadius\", \"iconFillColor\", \"round\", \"size\"]);\n return (React.createElement(\"svg\", __assign({ viewBox: \"0 0 64 64\", width: size, height: size }, rest),\n round ? (React.createElement(\"circle\", { cx: \"32\", cy: \"32\", r: \"31\", fill: iconConfig.color, style: bgStyle })) : (React.createElement(\"rect\", { width: \"64\", height: \"64\", rx: borderRadius, ry: borderRadius, fill: iconConfig.color, style: bgStyle })),\n React.createElement(\"path\", { d: iconConfig.path, fill: iconFillColor })));\n };\n Icon.defaultProps = {\n bgStyle: {},\n borderRadius: 0,\n iconFillColor: 'white',\n size: 64,\n };\n return Icon;\n}\n","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","import { GenericCSSPropertyValidator } from './GenericPropertyValidator';\nimport { CSSPropertyValidatorParams, CSSPropertyModel } from './types';\n\nexport abstract class LongCSSPropertyValidator<\n C extends CSSPropertyModel = any,\n N = any\n> extends GenericCSSPropertyValidator {\n constructor(params: CSSPropertyValidatorParams) {\n super(params, false);\n }\n\n /**\n * Normalize a rule value from inline CSS styles.\n *\n * @param value - The CSS property value to test.\n * @returns The normalized value, or null if normalization failed.\n */\n normalizeInlineCSSValue(value: N | string): N | null {\n if (typeof value !== 'string') {\n return value;\n }\n return this.normalizeRawInlineCSSValue(value);\n }\n\n abstract normalizeRawInlineCSSValue(value: string): N | null;\n\n /**\n * Normalize a mixed value from a @{link MixedStyleDeclaration}.\n *\n * @param value\n */\n normalizeNativeValue(value: N): N | null {\n return value;\n }\n}\n","var _curry1 =\n/*#__PURE__*/\nrequire(\"./_curry1\");\n\nvar _isPlaceholder =\n/*#__PURE__*/\nrequire(\"./_isPlaceholder\");\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\n\nfunction _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}\n\nmodule.exports = _curry2;","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React, { Component } from 'react';\nimport cx from 'classnames';\nvar isPromise = function (obj) {\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function';\n};\nvar getBoxPositionOnWindowCenter = function (width, height) { return ({\n left: window.outerWidth / 2 + (window.screenX || window.screenLeft || 0) - width / 2,\n top: window.outerHeight / 2 + (window.screenY || window.screenTop || 0) - height / 2,\n}); };\nvar getBoxPositionOnScreenCenter = function (width, height) { return ({\n top: (window.screen.height - height) / 2,\n left: (window.screen.width - width) / 2,\n}); };\nfunction windowOpen(url, _a, onClose) {\n var height = _a.height, width = _a.width, configRest = __rest(_a, [\"height\", \"width\"]);\n var config = __assign({ height: height,\n width: width, location: 'no', toolbar: 'no', status: 'no', directories: 'no', menubar: 'no', scrollbars: 'yes', resizable: 'no', centerscreen: 'yes', chrome: 'yes' }, configRest);\n var shareDialog = window.open(url, '', Object.keys(config)\n .map(function (key) { return key + \"=\" + config[key]; })\n .join(', '));\n if (onClose) {\n var interval_1 = window.setInterval(function () {\n try {\n if (shareDialog === null || shareDialog.closed) {\n window.clearInterval(interval_1);\n onClose(shareDialog);\n }\n }\n catch (e) {\n /* eslint-disable no-console */\n console.error(e);\n /* eslint-enable no-console */\n }\n }, 1000);\n }\n return shareDialog;\n}\nvar ShareButton = /** @class */ (function (_super) {\n __extends(ShareButton, _super);\n function ShareButton() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.openShareDialog = function (link) {\n var _a = _this.props, onShareWindowClose = _a.onShareWindowClose, _b = _a.windowHeight, windowHeight = _b === void 0 ? 400 : _b, _c = _a.windowPosition, windowPosition = _c === void 0 ? 'windowCenter' : _c, _d = _a.windowWidth, windowWidth = _d === void 0 ? 550 : _d;\n var windowConfig = __assign({ height: windowHeight, width: windowWidth }, (windowPosition === 'windowCenter'\n ? getBoxPositionOnWindowCenter(windowWidth, windowHeight)\n : getBoxPositionOnScreenCenter(windowWidth, windowHeight)));\n windowOpen(link, windowConfig, onShareWindowClose);\n };\n _this.handleClick = function (event) { return __awaiter(_this, void 0, void 0, function () {\n var _a, beforeOnClick, disabled, networkLink, onClick, url, openShareDialogOnClick, opts, link, returnVal;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = this.props, beforeOnClick = _a.beforeOnClick, disabled = _a.disabled, networkLink = _a.networkLink, onClick = _a.onClick, url = _a.url, openShareDialogOnClick = _a.openShareDialogOnClick, opts = _a.opts;\n link = networkLink(url, opts);\n if (disabled) {\n return [2 /*return*/];\n }\n event.preventDefault();\n if (!beforeOnClick) return [3 /*break*/, 2];\n returnVal = beforeOnClick();\n if (!isPromise(returnVal)) return [3 /*break*/, 2];\n return [4 /*yield*/, returnVal];\n case 1:\n _b.sent();\n _b.label = 2;\n case 2:\n if (openShareDialogOnClick) {\n this.openShareDialog(link);\n }\n if (onClick) {\n onClick(event, link);\n }\n return [2 /*return*/];\n }\n });\n }); };\n return _this;\n }\n ShareButton.prototype.render = function () {\n var _a = this.props, beforeOnClick = _a.beforeOnClick, children = _a.children, className = _a.className, disabled = _a.disabled, disabledStyle = _a.disabledStyle, forwardedRef = _a.forwardedRef, networkLink = _a.networkLink, networkName = _a.networkName, onShareWindowClose = _a.onShareWindowClose, openShareDialogOnClick = _a.openShareDialogOnClick, opts = _a.opts, resetButtonStyle = _a.resetButtonStyle, style = _a.style, url = _a.url, windowHeight = _a.windowHeight, windowPosition = _a.windowPosition, windowWidth = _a.windowWidth, rest = __rest(_a, [\"beforeOnClick\", \"children\", \"className\", \"disabled\", \"disabledStyle\", \"forwardedRef\", \"networkLink\", \"networkName\", \"onShareWindowClose\", \"openShareDialogOnClick\", \"opts\", \"resetButtonStyle\", \"style\", \"url\", \"windowHeight\", \"windowPosition\", \"windowWidth\"]);\n var newClassName = cx('react-share__ShareButton', {\n 'react-share__ShareButton--disabled': !!disabled,\n disabled: !!disabled,\n }, className);\n var newStyle = resetButtonStyle\n ? __assign(__assign({ backgroundColor: 'transparent', border: 'none', padding: 0, font: 'inherit', color: 'inherit', cursor: 'pointer' }, style), (disabled && disabledStyle)) : __assign(__assign({}, style), (disabled && disabledStyle));\n return (React.createElement(\"button\", __assign({}, rest, { \"aria-label\": rest['aria-label'] || networkName, className: newClassName, onClick: this.handleClick, ref: forwardedRef, style: newStyle }), children));\n };\n ShareButton.defaultProps = {\n disabledStyle: { opacity: 0.6 },\n openShareDialogOnClick: true,\n resetButtonStyle: true,\n };\n return ShareButton;\n}(Component));\nexport default ShareButton;\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport React, { forwardRef } from 'react';\nimport ShareButton from '../ShareButton';\nfunction createShareButton(networkName, link, optsMap, defaultProps) {\n function CreatedButton(props, ref) {\n var opts = optsMap(props);\n var passedProps = __assign({}, props);\n // remove keys from passed props that are passed as opts\n var optsKeys = Object.keys(opts);\n optsKeys.forEach(function (key) {\n delete passedProps[key];\n });\n return (React.createElement(ShareButton, __assign({}, defaultProps, passedProps, { forwardedRef: ref, networkName: networkName, networkLink: link, opts: optsMap(props) })));\n }\n CreatedButton.displayName = \"ShareButton-\" + networkName;\n return forwardRef(CreatedButton);\n}\nexport default createShareButton;\n","import { Dimensions, Platform, StatusBar } from 'react-native';\n\nexport function isIphoneX() {\n const dimen = Dimensions.get('window');\n return (\n Platform.OS === 'ios' &&\n !Platform.isPad &&\n !Platform.isTVOS &&\n ((dimen.height === 780 || dimen.width === 780)\n || (dimen.height === 812 || dimen.width === 812)\n || (dimen.height === 844 || dimen.width === 844)\n || (dimen.height === 896 || dimen.width === 896)\n || (dimen.height === 926 || dimen.width === 926))\n );\n}\n\nexport function ifIphoneX(iphoneXStyle, regularStyle) {\n if (isIphoneX()) {\n return iphoneXStyle;\n }\n return regularStyle;\n}\n\nexport function getStatusBarHeight(safe) {\n return Platform.select({\n ios: ifIphoneX(safe ? 44 : 30, 20),\n android: StatusBar.currentHeight,\n default: 0\n });\n}\n\nexport function getBottomSpace() {\n return isIphoneX() ? 34 : 0;\n}\n","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AssertionError = /** @class */ (function (_super) {\n __extends(AssertionError, _super);\n function AssertionError(message) {\n var _this = _super.call(this, message) || this;\n _this.name = 'AssertionError';\n return _this;\n }\n return AssertionError;\n}(Error));\nexport default function assert(value, message) {\n if (!value) {\n throw new AssertionError(message);\n }\n}\n","/**\n * The **content model** associated with a tag determines how this tag should\n * be translated in the Transient Render Tree.\n */\n// eslint-disable-next-line no-shadow\nexport enum HTMLContentModel {\n /**\n * Translatable to TBlock.\n */\n block = 'block',\n /**\n * Translatable to TPhrasing and TText\n */\n textual = 'textual',\n /**\n * Translatable to TBlock, TPhrasing and TText\n */\n mixed = 'mixed',\n /**\n * Translatable to TEmpty\n */\n none = 'none'\n}\n\nexport default HTMLContentModel;\n","import { CSSProperties } from './processor-types';\n\nexport class ShortMergeRequest {\n public readonly properties: CSSProperties | null;\n constructor(properties: CSSProperties | null) {\n this.properties = properties;\n }\n\n forEach(callback: (record: CSSProperties[number]) => void) {\n this.entries().forEach(callback);\n }\n\n map(callback: (record: CSSProperties[number]) => T) {\n return this.entries().map(callback);\n }\n\n entries() {\n if (this.properties == null) {\n return [];\n }\n return Object.entries(this.properties);\n }\n}\n","var superPropBase = require(\"./superPropBase.js\");\n\nfunction _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get;\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _get.apply(this, arguments);\n}\n\nmodule.exports = _get;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","import React, { PropsWithChildren, useMemo } from 'react';\nimport mergeDeepRight from 'ramda/src/mergeDeepRight';\n\nimport { RenderersProps, RenderHTMLPassedProps } from '../shared-types';\nimport defaultRendererProps from './defaultRendererProps';\nimport useProfiler from '../hooks/useProfiler';\n\nconst RenderersPropsContext =\n React.createContext>(defaultRendererProps);\n\n/**\n * Consume props from {@link RenderHTMLProps.renderersProps}.\n *\n * @param tagName - The name of the element.\n * @typeParam K - The type literal corresponding to the element name.\n * @returns props for this renderer.\n *\n * @public\n */\nexport function useRendererProps<\n RendererProps extends RenderersProps = RenderersProps,\n K extends keyof RendererProps = keyof RendererProps\n>(tagName: K) {\n const userProps = React.useContext(RenderersPropsContext) as RendererProps;\n return userProps[tagName];\n}\n\n/**\n * @internal\n */\nexport default function RenderersPropsProvider(\n props: PropsWithChildren\n) {\n const profile = useProfiler({ prop: 'renderersProps' });\n const mergedRenderersProps = useMemo(() => {\n typeof __DEV__ === 'boolean' && __DEV__ && profile();\n return mergeDeepRight(defaultRendererProps, props.renderersProps || {});\n }, [props.renderersProps, profile]);\n return React.createElement(\n RenderersPropsContext.Provider,\n { value: mergedRenderersProps as Required },\n props.children\n );\n}\n","/*!\n Copyright (c) 2018 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)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString === Object.prototype.toString) {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tclasses.push(arg.toString());\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","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.clamp = clamp;\nexports.canUseDOM = exports.slidesOnLeft = exports.slidesOnRight = exports.siblingDirection = exports.getTotalSlides = exports.getPostClones = exports.getPreClones = exports.getTrackLeft = exports.getTrackAnimateCSS = exports.getTrackCSS = exports.checkSpecKeys = exports.getSlideCount = exports.checkNavigable = exports.getNavigableIndexes = exports.swipeEnd = exports.swipeMove = exports.swipeStart = exports.keyHandler = exports.changeSlide = exports.slideHandler = exports.initializedState = exports.extractObject = exports.canGoNext = exports.getSwipeDirection = exports.getHeight = exports.getWidth = exports.lazySlidesOnRight = exports.lazySlidesOnLeft = exports.lazyEndIndex = exports.lazyStartIndex = exports.getRequiredLazySlides = exports.getOnDemandLazySlides = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction clamp(number, lowerBound, upperBound) {\n return Math.max(lowerBound, Math.min(number, upperBound));\n}\n\nvar getOnDemandLazySlides = function getOnDemandLazySlides(spec) {\n var onDemandSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n if (spec.lazyLoadedList.indexOf(slideIndex) < 0) {\n onDemandSlides.push(slideIndex);\n }\n }\n\n return onDemandSlides;\n}; // return list of slides that need to be present\n\n\nexports.getOnDemandLazySlides = getOnDemandLazySlides;\n\nvar getRequiredLazySlides = function getRequiredLazySlides(spec) {\n var requiredSlides = [];\n var startIndex = lazyStartIndex(spec);\n var endIndex = lazyEndIndex(spec);\n\n for (var slideIndex = startIndex; slideIndex < endIndex; slideIndex++) {\n requiredSlides.push(slideIndex);\n }\n\n return requiredSlides;\n}; // startIndex that needs to be present\n\n\nexports.getRequiredLazySlides = getRequiredLazySlides;\n\nvar lazyStartIndex = function lazyStartIndex(spec) {\n return spec.currentSlide - lazySlidesOnLeft(spec);\n};\n\nexports.lazyStartIndex = lazyStartIndex;\n\nvar lazyEndIndex = function lazyEndIndex(spec) {\n return spec.currentSlide + lazySlidesOnRight(spec);\n};\n\nexports.lazyEndIndex = lazyEndIndex;\n\nvar lazySlidesOnLeft = function lazySlidesOnLeft(spec) {\n return spec.centerMode ? Math.floor(spec.slidesToShow / 2) + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : 0;\n};\n\nexports.lazySlidesOnLeft = lazySlidesOnLeft;\n\nvar lazySlidesOnRight = function lazySlidesOnRight(spec) {\n return spec.centerMode ? Math.floor((spec.slidesToShow - 1) / 2) + 1 + (parseInt(spec.centerPadding) > 0 ? 1 : 0) : spec.slidesToShow;\n}; // get width of an element\n\n\nexports.lazySlidesOnRight = lazySlidesOnRight;\n\nvar getWidth = function getWidth(elem) {\n return elem && elem.offsetWidth || 0;\n};\n\nexports.getWidth = getWidth;\n\nvar getHeight = function getHeight(elem) {\n return elem && elem.offsetHeight || 0;\n};\n\nexports.getHeight = getHeight;\n\nvar getSwipeDirection = function getSwipeDirection(touchObject) {\n var verticalSwiping = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var xDist, yDist, r, swipeAngle;\n xDist = touchObject.startX - touchObject.curX;\n yDist = touchObject.startY - touchObject.curY;\n r = Math.atan2(yDist, xDist);\n swipeAngle = Math.round(r * 180 / Math.PI);\n\n if (swipeAngle < 0) {\n swipeAngle = 360 - Math.abs(swipeAngle);\n }\n\n if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {\n return \"left\";\n }\n\n if (swipeAngle >= 135 && swipeAngle <= 225) {\n return \"right\";\n }\n\n if (verticalSwiping === true) {\n if (swipeAngle >= 35 && swipeAngle <= 135) {\n return \"up\";\n } else {\n return \"down\";\n }\n }\n\n return \"vertical\";\n}; // whether or not we can go next\n\n\nexports.getSwipeDirection = getSwipeDirection;\n\nvar canGoNext = function canGoNext(spec) {\n var canGo = true;\n\n if (!spec.infinite) {\n if (spec.centerMode && spec.currentSlide >= spec.slideCount - 1) {\n canGo = false;\n } else if (spec.slideCount <= spec.slidesToShow || spec.currentSlide >= spec.slideCount - spec.slidesToShow) {\n canGo = false;\n }\n }\n\n return canGo;\n}; // given an object and a list of keys, return new object with given keys\n\n\nexports.canGoNext = canGoNext;\n\nvar extractObject = function extractObject(spec, keys) {\n var newObject = {};\n keys.forEach(function (key) {\n return newObject[key] = spec[key];\n });\n return newObject;\n}; // get initialized state\n\n\nexports.extractObject = extractObject;\n\nvar initializedState = function initializedState(spec) {\n // spec also contains listRef, trackRef\n var slideCount = _react[\"default\"].Children.count(spec.children);\n\n var listNode = spec.listRef;\n var listWidth = Math.ceil(getWidth(listNode));\n var trackNode = spec.trackRef && spec.trackRef.node;\n var trackWidth = Math.ceil(getWidth(trackNode));\n var slideWidth;\n\n if (!spec.vertical) {\n var centerPaddingAdj = spec.centerMode && parseInt(spec.centerPadding) * 2;\n\n if (typeof spec.centerPadding === \"string\" && spec.centerPadding.slice(-1) === \"%\") {\n centerPaddingAdj *= listWidth / 100;\n }\n\n slideWidth = Math.ceil((listWidth - centerPaddingAdj) / spec.slidesToShow);\n } else {\n slideWidth = listWidth;\n }\n\n var slideHeight = listNode && getHeight(listNode.querySelector('[data-index=\"0\"]'));\n var listHeight = slideHeight * spec.slidesToShow;\n var currentSlide = spec.currentSlide === undefined ? spec.initialSlide : spec.currentSlide;\n\n if (spec.rtl && spec.currentSlide === undefined) {\n currentSlide = slideCount - 1 - spec.initialSlide;\n }\n\n var lazyLoadedList = spec.lazyLoadedList || [];\n var slidesToLoad = getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: currentSlide,\n lazyLoadedList: lazyLoadedList\n }));\n lazyLoadedList.concat(slidesToLoad);\n var state = {\n slideCount: slideCount,\n slideWidth: slideWidth,\n listWidth: listWidth,\n trackWidth: trackWidth,\n currentSlide: currentSlide,\n slideHeight: slideHeight,\n listHeight: listHeight,\n lazyLoadedList: lazyLoadedList\n };\n\n if (spec.autoplaying === null && spec.autoplay) {\n state[\"autoplaying\"] = \"playing\";\n }\n\n return state;\n};\n\nexports.initializedState = initializedState;\n\nvar slideHandler = function slideHandler(spec) {\n var waitForAnimate = spec.waitForAnimate,\n animating = spec.animating,\n fade = spec.fade,\n infinite = spec.infinite,\n index = spec.index,\n slideCount = spec.slideCount,\n lazyLoadedList = spec.lazyLoadedList,\n lazyLoad = spec.lazyLoad,\n currentSlide = spec.currentSlide,\n centerMode = spec.centerMode,\n slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n useCSS = spec.useCSS;\n if (waitForAnimate && animating) return {};\n var animationSlide = index,\n finalSlide,\n animationLeft,\n finalLeft;\n var state = {},\n nextState = {};\n var targetSlide = infinite ? index : clamp(index, 0, slideCount - 1);\n\n if (fade) {\n if (!infinite && (index < 0 || index >= slideCount)) return {};\n\n if (index < 0) {\n animationSlide = index + slideCount;\n } else if (index >= slideCount) {\n animationSlide = index - slideCount;\n }\n\n if (lazyLoad && lazyLoadedList.indexOf(animationSlide) < 0) {\n lazyLoadedList.push(animationSlide);\n }\n\n state = {\n animating: true,\n currentSlide: animationSlide,\n lazyLoadedList: lazyLoadedList,\n targetSlide: animationSlide\n };\n nextState = {\n animating: false,\n targetSlide: animationSlide\n };\n } else {\n finalSlide = animationSlide;\n\n if (animationSlide < 0) {\n finalSlide = animationSlide + slideCount;\n if (!infinite) finalSlide = 0;else if (slideCount % slidesToScroll !== 0) finalSlide = slideCount - slideCount % slidesToScroll;\n } else if (!canGoNext(spec) && animationSlide > currentSlide) {\n animationSlide = finalSlide = currentSlide;\n } else if (centerMode && animationSlide >= slideCount) {\n animationSlide = infinite ? slideCount : slideCount - 1;\n finalSlide = infinite ? 0 : slideCount - 1;\n } else if (animationSlide >= slideCount) {\n finalSlide = animationSlide - slideCount;\n if (!infinite) finalSlide = slideCount - slidesToShow;else if (slideCount % slidesToScroll !== 0) finalSlide = 0;\n }\n\n if (!infinite && animationSlide + slidesToShow >= slideCount) {\n finalSlide = slideCount - slidesToShow;\n }\n\n animationLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: animationSlide\n }));\n finalLeft = getTrackLeft(_objectSpread(_objectSpread({}, spec), {}, {\n slideIndex: finalSlide\n }));\n\n if (!infinite) {\n if (animationLeft === finalLeft) animationSlide = finalSlide;\n animationLeft = finalLeft;\n }\n\n lazyLoad && lazyLoadedList.concat(getOnDemandLazySlides(_objectSpread(_objectSpread({}, spec), {}, {\n currentSlide: animationSlide\n })));\n\n if (!useCSS) {\n state = {\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n } else {\n state = {\n animating: true,\n currentSlide: finalSlide,\n trackStyle: getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: animationLeft\n })),\n lazyLoadedList: lazyLoadedList,\n targetSlide: targetSlide\n };\n nextState = {\n animating: false,\n currentSlide: finalSlide,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: finalLeft\n })),\n swipeLeft: null,\n targetSlide: targetSlide\n };\n }\n }\n\n return {\n state: state,\n nextState: nextState\n };\n};\n\nexports.slideHandler = slideHandler;\n\nvar changeSlide = function changeSlide(spec, options) {\n var indexOffset, previousInt, slideOffset, unevenOffset, targetSlide;\n var slidesToScroll = spec.slidesToScroll,\n slidesToShow = spec.slidesToShow,\n slideCount = spec.slideCount,\n currentSlide = spec.currentSlide,\n previousTargetSlide = spec.targetSlide,\n lazyLoad = spec.lazyLoad,\n infinite = spec.infinite;\n unevenOffset = slideCount % slidesToScroll !== 0;\n indexOffset = unevenOffset ? 0 : (slideCount - currentSlide) % slidesToScroll;\n\n if (options.message === \"previous\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : slidesToShow - indexOffset;\n targetSlide = currentSlide - slideOffset;\n\n if (lazyLoad && !infinite) {\n previousInt = currentSlide - slideOffset;\n targetSlide = previousInt === -1 ? slideCount - 1 : previousInt;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide - slidesToScroll;\n }\n } else if (options.message === \"next\") {\n slideOffset = indexOffset === 0 ? slidesToScroll : indexOffset;\n targetSlide = currentSlide + slideOffset;\n\n if (lazyLoad && !infinite) {\n targetSlide = (currentSlide + slidesToScroll) % slideCount + indexOffset;\n }\n\n if (!infinite) {\n targetSlide = previousTargetSlide + slidesToScroll;\n }\n } else if (options.message === \"dots\") {\n // Click on dots\n targetSlide = options.index * options.slidesToScroll;\n } else if (options.message === \"children\") {\n // Click on the slides\n targetSlide = options.index;\n\n if (infinite) {\n var direction = siblingDirection(_objectSpread(_objectSpread({}, spec), {}, {\n targetSlide: targetSlide\n }));\n\n if (targetSlide > options.currentSlide && direction === \"left\") {\n targetSlide = targetSlide - slideCount;\n } else if (targetSlide < options.currentSlide && direction === \"right\") {\n targetSlide = targetSlide + slideCount;\n }\n }\n } else if (options.message === \"index\") {\n targetSlide = Number(options.index);\n }\n\n return targetSlide;\n};\n\nexports.changeSlide = changeSlide;\n\nvar keyHandler = function keyHandler(e, accessibility, rtl) {\n if (e.target.tagName.match(\"TEXTAREA|INPUT|SELECT\") || !accessibility) return \"\";\n if (e.keyCode === 37) return rtl ? \"next\" : \"previous\";\n if (e.keyCode === 39) return rtl ? \"previous\" : \"next\";\n return \"\";\n};\n\nexports.keyHandler = keyHandler;\n\nvar swipeStart = function swipeStart(e, swipe, draggable) {\n e.target.tagName === \"IMG\" && e.preventDefault();\n if (!swipe || !draggable && e.type.indexOf(\"mouse\") !== -1) return \"\";\n return {\n dragging: true,\n touchObject: {\n startX: e.touches ? e.touches[0].pageX : e.clientX,\n startY: e.touches ? e.touches[0].pageY : e.clientY,\n curX: e.touches ? e.touches[0].pageX : e.clientX,\n curY: e.touches ? e.touches[0].pageY : e.clientY\n }\n };\n};\n\nexports.swipeStart = swipeStart;\n\nvar swipeMove = function swipeMove(e, spec) {\n // spec also contains, trackRef and slideIndex\n var scrolling = spec.scrolling,\n animating = spec.animating,\n vertical = spec.vertical,\n swipeToSlide = spec.swipeToSlide,\n verticalSwiping = spec.verticalSwiping,\n rtl = spec.rtl,\n currentSlide = spec.currentSlide,\n edgeFriction = spec.edgeFriction,\n edgeDragged = spec.edgeDragged,\n onEdge = spec.onEdge,\n swiped = spec.swiped,\n swiping = spec.swiping,\n slideCount = spec.slideCount,\n slidesToScroll = spec.slidesToScroll,\n infinite = spec.infinite,\n touchObject = spec.touchObject,\n swipeEvent = spec.swipeEvent,\n listHeight = spec.listHeight,\n listWidth = spec.listWidth;\n if (scrolling) return;\n if (animating) return e.preventDefault();\n if (vertical && swipeToSlide && verticalSwiping) e.preventDefault();\n var swipeLeft,\n state = {};\n var curLeft = getTrackLeft(spec);\n touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;\n touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;\n touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));\n var verticalSwipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));\n\n if (!verticalSwiping && !swiping && verticalSwipeLength > 10) {\n return {\n scrolling: true\n };\n }\n\n if (verticalSwiping) touchObject.swipeLength = verticalSwipeLength;\n var positionOffset = (!rtl ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);\n if (verticalSwiping) positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;\n var dotCount = Math.ceil(slideCount / slidesToScroll);\n var swipeDirection = getSwipeDirection(spec.touchObject, verticalSwiping);\n var touchSwipeLength = touchObject.swipeLength;\n\n if (!infinite) {\n if (currentSlide === 0 && swipeDirection === \"right\" || currentSlide + 1 >= dotCount && swipeDirection === \"left\" || !canGoNext(spec) && swipeDirection === \"left\") {\n touchSwipeLength = touchObject.swipeLength * edgeFriction;\n\n if (edgeDragged === false && onEdge) {\n onEdge(swipeDirection);\n state[\"edgeDragged\"] = true;\n }\n }\n }\n\n if (!swiped && swipeEvent) {\n swipeEvent(swipeDirection);\n state[\"swiped\"] = true;\n }\n\n if (!vertical) {\n if (!rtl) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n } else {\n swipeLeft = curLeft - touchSwipeLength * positionOffset;\n }\n } else {\n swipeLeft = curLeft + touchSwipeLength * (listHeight / listWidth) * positionOffset;\n }\n\n if (verticalSwiping) {\n swipeLeft = curLeft + touchSwipeLength * positionOffset;\n }\n\n state = _objectSpread(_objectSpread({}, state), {}, {\n touchObject: touchObject,\n swipeLeft: swipeLeft,\n trackStyle: getTrackCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: swipeLeft\n }))\n });\n\n if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {\n return state;\n }\n\n if (touchObject.swipeLength > 10) {\n state[\"swiping\"] = true;\n e.preventDefault();\n }\n\n return state;\n};\n\nexports.swipeMove = swipeMove;\n\nvar swipeEnd = function swipeEnd(e, spec) {\n var dragging = spec.dragging,\n swipe = spec.swipe,\n touchObject = spec.touchObject,\n listWidth = spec.listWidth,\n touchThreshold = spec.touchThreshold,\n verticalSwiping = spec.verticalSwiping,\n listHeight = spec.listHeight,\n swipeToSlide = spec.swipeToSlide,\n scrolling = spec.scrolling,\n onSwipe = spec.onSwipe,\n targetSlide = spec.targetSlide,\n currentSlide = spec.currentSlide,\n infinite = spec.infinite;\n\n if (!dragging) {\n if (swipe) e.preventDefault();\n return {};\n }\n\n var minSwipe = verticalSwiping ? listHeight / touchThreshold : listWidth / touchThreshold;\n var swipeDirection = getSwipeDirection(touchObject, verticalSwiping); // reset the state of touch related state variables.\n\n var state = {\n dragging: false,\n edgeDragged: false,\n scrolling: false,\n swiping: false,\n swiped: false,\n swipeLeft: null,\n touchObject: {}\n };\n\n if (scrolling) {\n return state;\n }\n\n if (!touchObject.swipeLength) {\n return state;\n }\n\n if (touchObject.swipeLength > minSwipe) {\n e.preventDefault();\n\n if (onSwipe) {\n onSwipe(swipeDirection);\n }\n\n var slideCount, newSlide;\n var activeSlide = infinite ? currentSlide : targetSlide;\n\n switch (swipeDirection) {\n case \"left\":\n case \"up\":\n newSlide = activeSlide + getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 0;\n break;\n\n case \"right\":\n case \"down\":\n newSlide = activeSlide - getSlideCount(spec);\n slideCount = swipeToSlide ? checkNavigable(spec, newSlide) : newSlide;\n state[\"currentDirection\"] = 1;\n break;\n\n default:\n slideCount = activeSlide;\n }\n\n state[\"triggerSlideHandler\"] = slideCount;\n } else {\n // Adjust the track back to it's original position.\n var currentLeft = getTrackLeft(spec);\n state[\"trackStyle\"] = getTrackAnimateCSS(_objectSpread(_objectSpread({}, spec), {}, {\n left: currentLeft\n }));\n }\n\n return state;\n};\n\nexports.swipeEnd = swipeEnd;\n\nvar getNavigableIndexes = function getNavigableIndexes(spec) {\n var max = spec.infinite ? spec.slideCount * 2 : spec.slideCount;\n var breakpoint = spec.infinite ? spec.slidesToShow * -1 : 0;\n var counter = spec.infinite ? spec.slidesToShow * -1 : 0;\n var indexes = [];\n\n while (breakpoint < max) {\n indexes.push(breakpoint);\n breakpoint = counter + spec.slidesToScroll;\n counter += Math.min(spec.slidesToScroll, spec.slidesToShow);\n }\n\n return indexes;\n};\n\nexports.getNavigableIndexes = getNavigableIndexes;\n\nvar checkNavigable = function checkNavigable(spec, index) {\n var navigables = getNavigableIndexes(spec);\n var prevNavigable = 0;\n\n if (index > navigables[navigables.length - 1]) {\n index = navigables[navigables.length - 1];\n } else {\n for (var n in navigables) {\n if (index < navigables[n]) {\n index = prevNavigable;\n break;\n }\n\n prevNavigable = navigables[n];\n }\n }\n\n return index;\n};\n\nexports.checkNavigable = checkNavigable;\n\nvar getSlideCount = function getSlideCount(spec) {\n var centerOffset = spec.centerMode ? spec.slideWidth * Math.floor(spec.slidesToShow / 2) : 0;\n\n if (spec.swipeToSlide) {\n var swipedSlide;\n var slickList = spec.listRef;\n var slides = slickList.querySelectorAll && slickList.querySelectorAll(\".slick-slide\") || [];\n Array.from(slides).every(function (slide) {\n if (!spec.vertical) {\n if (slide.offsetLeft - centerOffset + getWidth(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n } else {\n if (slide.offsetTop + getHeight(slide) / 2 > spec.swipeLeft * -1) {\n swipedSlide = slide;\n return false;\n }\n }\n\n return true;\n });\n\n if (!swipedSlide) {\n return 0;\n }\n\n var currentIndex = spec.rtl === true ? spec.slideCount - spec.currentSlide : spec.currentSlide;\n var slidesTraversed = Math.abs(swipedSlide.dataset.index - currentIndex) || 1;\n return slidesTraversed;\n } else {\n return spec.slidesToScroll;\n }\n};\n\nexports.getSlideCount = getSlideCount;\n\nvar checkSpecKeys = function checkSpecKeys(spec, keysArray) {\n return keysArray.reduce(function (value, key) {\n return value && spec.hasOwnProperty(key);\n }, true) ? null : console.error(\"Keys Missing:\", spec);\n};\n\nexports.checkSpecKeys = checkSpecKeys;\n\nvar getTrackCSS = function getTrackCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\"]);\n var trackWidth, trackHeight;\n var trackChildren = spec.slideCount + 2 * spec.slidesToShow;\n\n if (!spec.vertical) {\n trackWidth = getTotalSlides(spec) * spec.slideWidth;\n } else {\n trackHeight = trackChildren * spec.slideHeight;\n }\n\n var style = {\n opacity: 1,\n transition: \"\",\n WebkitTransition: \"\"\n };\n\n if (spec.useTransform) {\n var WebkitTransform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var transform = !spec.vertical ? \"translate3d(\" + spec.left + \"px, 0px, 0px)\" : \"translate3d(0px, \" + spec.left + \"px, 0px)\";\n var msTransform = !spec.vertical ? \"translateX(\" + spec.left + \"px)\" : \"translateY(\" + spec.left + \"px)\";\n style = _objectSpread(_objectSpread({}, style), {}, {\n WebkitTransform: WebkitTransform,\n transform: transform,\n msTransform: msTransform\n });\n } else {\n if (spec.vertical) {\n style[\"top\"] = spec.left;\n } else {\n style[\"left\"] = spec.left;\n }\n }\n\n if (spec.fade) style = {\n opacity: 1\n };\n if (trackWidth) style.width = trackWidth;\n if (trackHeight) style.height = trackHeight; // Fallback for IE8\n\n if (window && !window.addEventListener && window.attachEvent) {\n if (!spec.vertical) {\n style.marginLeft = spec.left + \"px\";\n } else {\n style.marginTop = spec.left + \"px\";\n }\n }\n\n return style;\n};\n\nexports.getTrackCSS = getTrackCSS;\n\nvar getTrackAnimateCSS = function getTrackAnimateCSS(spec) {\n checkSpecKeys(spec, [\"left\", \"variableWidth\", \"slideCount\", \"slidesToShow\", \"slideWidth\", \"speed\", \"cssEase\"]);\n var style = getTrackCSS(spec); // useCSS is true by default so it can be undefined\n\n if (spec.useTransform) {\n style.WebkitTransition = \"-webkit-transform \" + spec.speed + \"ms \" + spec.cssEase;\n style.transition = \"transform \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n if (spec.vertical) {\n style.transition = \"top \" + spec.speed + \"ms \" + spec.cssEase;\n } else {\n style.transition = \"left \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nexports.getTrackAnimateCSS = getTrackAnimateCSS;\n\nvar getTrackLeft = function getTrackLeft(spec) {\n if (spec.unslick) {\n return 0;\n }\n\n checkSpecKeys(spec, [\"slideIndex\", \"trackRef\", \"infinite\", \"centerMode\", \"slideCount\", \"slidesToShow\", \"slidesToScroll\", \"slideWidth\", \"listWidth\", \"variableWidth\", \"slideHeight\"]);\n var slideIndex = spec.slideIndex,\n trackRef = spec.trackRef,\n infinite = spec.infinite,\n centerMode = spec.centerMode,\n slideCount = spec.slideCount,\n slidesToShow = spec.slidesToShow,\n slidesToScroll = spec.slidesToScroll,\n slideWidth = spec.slideWidth,\n listWidth = spec.listWidth,\n variableWidth = spec.variableWidth,\n slideHeight = spec.slideHeight,\n fade = spec.fade,\n vertical = spec.vertical;\n var slideOffset = 0;\n var targetLeft;\n var targetSlide;\n var verticalOffset = 0;\n\n if (fade || spec.slideCount === 1) {\n return 0;\n }\n\n var slidesToOffset = 0;\n\n if (infinite) {\n slidesToOffset = -getPreClones(spec); // bring active slide to the beginning of visual area\n // if next scroll doesn't have enough children, just reach till the end of original slides instead of shifting slidesToScroll children\n\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = -(slideIndex > slideCount ? slidesToShow - (slideIndex - slideCount) : slideCount % slidesToScroll);\n } // shift current slide to center of the frame\n\n\n if (centerMode) {\n slidesToOffset += parseInt(slidesToShow / 2);\n }\n } else {\n if (slideCount % slidesToScroll !== 0 && slideIndex + slidesToScroll > slideCount) {\n slidesToOffset = slidesToShow - slideCount % slidesToScroll;\n }\n\n if (centerMode) {\n slidesToOffset = parseInt(slidesToShow / 2);\n }\n }\n\n slideOffset = slidesToOffset * slideWidth;\n verticalOffset = slidesToOffset * slideHeight;\n\n if (!vertical) {\n targetLeft = slideIndex * slideWidth * -1 + slideOffset;\n } else {\n targetLeft = slideIndex * slideHeight * -1 + verticalOffset;\n }\n\n if (variableWidth === true) {\n var targetSlideIndex;\n var trackElem = trackRef && trackRef.node;\n targetSlideIndex = slideIndex + getPreClones(spec);\n targetSlide = trackElem && trackElem.childNodes[targetSlideIndex];\n targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;\n\n if (centerMode === true) {\n targetSlideIndex = infinite ? slideIndex + getPreClones(spec) : slideIndex;\n targetSlide = trackElem && trackElem.children[targetSlideIndex];\n targetLeft = 0;\n\n for (var slide = 0; slide < targetSlideIndex; slide++) {\n targetLeft -= trackElem && trackElem.children[slide] && trackElem.children[slide].offsetWidth;\n }\n\n targetLeft -= parseInt(spec.centerPadding);\n targetLeft += targetSlide && (listWidth - targetSlide.offsetWidth) / 2;\n }\n }\n\n return targetLeft;\n};\n\nexports.getTrackLeft = getTrackLeft;\n\nvar getPreClones = function getPreClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n if (spec.variableWidth) {\n return spec.slideCount;\n }\n\n return spec.slidesToShow + (spec.centerMode ? 1 : 0);\n};\n\nexports.getPreClones = getPreClones;\n\nvar getPostClones = function getPostClones(spec) {\n if (spec.unslick || !spec.infinite) {\n return 0;\n }\n\n return spec.slideCount;\n};\n\nexports.getPostClones = getPostClones;\n\nvar getTotalSlides = function getTotalSlides(spec) {\n return spec.slideCount === 1 ? 1 : getPreClones(spec) + spec.slideCount + getPostClones(spec);\n};\n\nexports.getTotalSlides = getTotalSlides;\n\nvar siblingDirection = function siblingDirection(spec) {\n if (spec.targetSlide > spec.currentSlide) {\n if (spec.targetSlide > spec.currentSlide + slidesOnRight(spec)) {\n return \"left\";\n }\n\n return \"right\";\n } else {\n if (spec.targetSlide < spec.currentSlide - slidesOnLeft(spec)) {\n return \"right\";\n }\n\n return \"left\";\n }\n};\n\nexports.siblingDirection = siblingDirection;\n\nvar slidesOnRight = function slidesOnRight(_ref) {\n var slidesToShow = _ref.slidesToShow,\n centerMode = _ref.centerMode,\n rtl = _ref.rtl,\n centerPadding = _ref.centerPadding;\n\n // returns no of slides on the right of active slide\n if (centerMode) {\n var right = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) right += 1;\n if (rtl && slidesToShow % 2 === 0) right += 1;\n return right;\n }\n\n if (rtl) {\n return 0;\n }\n\n return slidesToShow - 1;\n};\n\nexports.slidesOnRight = slidesOnRight;\n\nvar slidesOnLeft = function slidesOnLeft(_ref2) {\n var slidesToShow = _ref2.slidesToShow,\n centerMode = _ref2.centerMode,\n rtl = _ref2.rtl,\n centerPadding = _ref2.centerPadding;\n\n // returns no of slides on the left of active slide\n if (centerMode) {\n var left = (slidesToShow - 1) / 2 + 1;\n if (parseInt(centerPadding) > 0) left += 1;\n if (!rtl && slidesToShow % 2 === 0) left += 1;\n return left;\n }\n\n if (rtl) {\n return slidesToShow - 1;\n }\n\n return 0;\n};\n\nexports.slidesOnLeft = slidesOnLeft;\n\nvar canUseDOM = function canUseDOM() {\n return !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n};\n\nexports.canUseDOM = canUseDOM;","import { Text, Element, Node, Document, NodeWithChildren } from 'domhandler';\nimport { Text as TextType, Tag as TagType } from 'domelementtype';\n\nexport { Text, Element, Node, NodeWithChildren, Document };\n\nexport function isDomText(node: any): node is Text {\n return node && node.type === TextType;\n}\n\nexport function isDomElement(node: any): node is Element {\n return node && node.type === TagType;\n}\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","import { useCallback, useRef } from 'react';\nimport identity from 'ramda/src/identity';\n\ndeclare const performance: { now: () => number };\n\nconst useProfiler =\n typeof __DEV__ === 'boolean' && __DEV__ && typeof performance === 'object'\n ? function useProfiler({ name, prop }: { name?: string; prop?: string }) {\n const lastUpdate = useRef(0);\n const profile = useCallback(\n function onUpdate() {\n const now = performance.now();\n const diff = now - lastUpdate.current;\n if (diff < 60) {\n console.warn(\n `You seem to update ${\n prop ? `the ${prop} prop(s)` : 'props'\n } of the \"${\n name ? name : 'RenderHTML'\n }\" component in short periods of time, causing costly tree rerenders (last update was ${diff.toFixed(\n 2\n )}ms ago). See https://stackoverflow.com/q/68966120/2779871`\n );\n }\n lastUpdate.current = now;\n },\n [name, prop]\n );\n return profile;\n }\n : /* istanbul ignore next */\n function useProfiler() {\n return identity as () => void;\n };\n\nexport default useProfiler;\n","function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = _has;","import { UnitaryCounterRendererProps } from '../../shared-types';\n\nexport default function useSymbolicMarkerRendererProps(\n props: UnitaryCounterRendererProps,\n shrinkFactor = 1\n) {\n const prefixSize = props.fontSize / (shrinkFactor * 2.8);\n return {\n prefixSize,\n prefixStyle: {\n width: prefixSize,\n height: prefixSize,\n // center the item vertically, relative to line height\n top: (props.lineHeight - prefixSize) / 2\n }\n };\n}\n","import React, { PropsWithChildren } from 'react';\nimport { StyleProp, StyleSheet, View, ViewStyle } from 'react-native';\nimport { MarkedListProps } from './shared-types';\n\n/**\n * Props for the {@link MarkedListItem} component.\n *\n * @public\n */\nexport type MarkedListItemProps = Required<\n Pick<\n MarkedListProps,\n | 'counterRenderer'\n | 'renderMarker'\n | 'markerTextStyle'\n | 'markerBoxStyle'\n | 'rtlLineReversed'\n | 'rtlMarkerReversed'\n | 'startIndex'\n >\n> & {\n index: number;\n markerTextWidth: number | false;\n maxNumOfCodepoints: number;\n enableMarkerClipping: boolean;\n style: StyleProp;\n};\n\n/**\n * A component which reproduces CSS3 `display: list-item;` behavior. It\n * prepends its child with a marker box containing a marker string\n * representation for this child index.\n *\n * See {@link https://www.w3.org/TR/css-lists-3/#markers | CSS Lists and Counters Module Level 3, Markers}.\n *\n * @public\n */\nexport default function MarkedListItem({\n counterRenderer,\n index,\n startIndex,\n rtlLineReversed,\n rtlMarkerReversed,\n markerTextStyle,\n markerBoxStyle,\n maxNumOfCodepoints,\n markerTextWidth,\n style,\n renderMarker,\n enableMarkerClipping,\n children\n}: PropsWithChildren) {\n return (\n \n {renderMarker({\n counterRenderer,\n rtlMarkerReversed:\n typeof rtlMarkerReversed === 'boolean' ? rtlMarkerReversed : true,\n counterIndex: index + startIndex,\n maxNumOfCodepoints,\n style: markerBoxStyle,\n markerTextStyle,\n markerTextWidth,\n enableMarkerClipping\n })}\n {children}\n \n );\n}\n\nconst styles = StyleSheet.create({\n lineLtr: { flexWrap: 'nowrap', alignSelf: 'stretch', flexDirection: 'row' },\n lineRtl: {\n flexWrap: 'nowrap',\n alignSelf: 'stretch',\n flexDirection: 'row-reverse'\n }\n});\n","import React from 'react';\nimport { Text, TextProps, View } from 'react-native';\nimport { MarkerBoxProps } from './shared-types';\n\nconst markerClipConfig: Partial = {\n numberOfLines: 1,\n ellipsizeMode: 'clip'\n};\n\n/**\n * Default component to render the list marker.\n *\n * See {@link https://www.w3.org/TR/css-lists-3/#marker-pseudo | CSS Lists and Counters Module Level 3, Markers}\n *\n * @public\n */\nexport default function MarkerBox({\n style,\n counterRenderer,\n counterIndex,\n markerTextStyle,\n markerTextWidth,\n enableMarkerClipping\n}: MarkerBoxProps) {\n const markerStyle =\n typeof markerTextWidth === 'number'\n ? [markerTextStyle, { width: markerTextWidth }]\n : markerTextStyle;\n return (\n \n \n {counterRenderer.renderMarker(counterIndex)}\n \n \n );\n}\n","'use strict';\n\n\nvar TYPED_OK = (typeof Uint8Array !== 'undefined') &&\n (typeof Uint16Array !== 'undefined') &&\n (typeof Int32Array !== 'undefined');\n\nfunction _has(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexports.assign = function (obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n var source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (var p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n};\n\n\n// reduce buffer size, avoiding mem copy\nexports.shrinkBuf = function (buf, size) {\n if (buf.length === size) { return buf; }\n if (buf.subarray) { return buf.subarray(0, size); }\n buf.length = size;\n return buf;\n};\n\n\nvar fnTyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n if (src.subarray && dest.subarray) {\n dest.set(src.subarray(src_offs, src_offs + len), dest_offs);\n return;\n }\n // Fallback to ordinary array\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n var i, l, len, pos, chunk, result;\n\n // calculate data length\n len = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n result = new Uint8Array(len);\n pos = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n }\n};\n\nvar fnUntyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n return [].concat.apply([], chunks);\n }\n};\n\n\n// Enable/Disable typed arrays use, for testing\n//\nexports.setTyped = function (on) {\n if (on) {\n exports.Buf8 = Uint8Array;\n exports.Buf16 = Uint16Array;\n exports.Buf32 = Int32Array;\n exports.assign(exports, fnTyped);\n } else {\n exports.Buf8 = Array;\n exports.Buf16 = Array;\n exports.Buf32 = Array;\n exports.assign(exports, fnUntyped);\n }\n};\n\nexports.setTyped(TYPED_OK);\n","import TRenderEngine from '@native-html/transient-render-engine';\nimport React, { PropsWithChildren, ReactElement } from 'react';\nimport { Platform } from 'react-native';\nimport PropTypes from 'prop-types';\nimport useTRenderEngine from './hooks/useTRenderEngine';\nimport { TRenderEngineConfig } from './shared-types';\nimport defaultSystemFonts from './defaultSystemFonts';\n\nconst defaultTRenderEngine = {} as any;\n\nconst TRenderEngineContext =\n React.createContext(defaultTRenderEngine);\n\nexport const tRenderEngineProviderPropTypes: Record<\n keyof TRenderEngineConfig,\n any\n> = {\n customHTMLElementModels: PropTypes.object.isRequired,\n enableCSSInlineProcessing: PropTypes.bool,\n enableUserAgentStyles: PropTypes.bool,\n idsStyles: PropTypes.object,\n ignoredDomTags: PropTypes.array,\n ignoreDomNode: PropTypes.func,\n domVisitors: PropTypes.object,\n ignoredStyles: PropTypes.array.isRequired,\n allowedStyles: PropTypes.array,\n htmlParserOptions: PropTypes.object,\n tagsStyles: PropTypes.object,\n classesStyles: PropTypes.object,\n emSize: PropTypes.number.isRequired,\n baseStyle: PropTypes.object,\n systemFonts: PropTypes.arrayOf(PropTypes.string),\n fallbackFonts: PropTypes.shape({\n serif: PropTypes.string,\n 'sans-serif': PropTypes.string,\n monospace: PropTypes.string\n }),\n setMarkersForTNode: PropTypes.func,\n dangerouslyDisableHoisting: PropTypes.bool,\n dangerouslyDisableWhitespaceCollapsing: PropTypes.bool,\n selectDomRoot: PropTypes.func\n};\n\n/**\n * Default fallback font for special keys such as 'sans-serif', 'monospace',\n * 'serif', based on current platform.\n */\nexport const defaultFallbackFonts = {\n 'sans-serif': Platform.select({ ios: 'system', default: 'sans-serif' }),\n monospace: Platform.select({ ios: 'Menlo', default: 'monospace' }),\n serif: Platform.select({ ios: 'Times New Roman', default: 'serif' })\n};\n\nexport const defaultTRenderEngineProviderProps: TRenderEngineConfig = {\n htmlParserOptions: {\n decodeEntities: true\n },\n emSize: 14,\n ignoredDomTags: [],\n ignoredStyles: [],\n baseStyle: { fontSize: 14 },\n tagsStyles: {},\n classesStyles: {},\n enableUserAgentStyles: true,\n enableCSSInlineProcessing: true,\n customHTMLElementModels: {},\n fallbackFonts: defaultFallbackFonts,\n systemFonts: defaultSystemFonts\n};\n\n/**\n * Use the ambient transient render engine.\n *\n * @returns The ambient transient render engine.\n *\n * @public\n */\nexport function useAmbientTRenderEngine() {\n const engine = React.useContext(TRenderEngineContext);\n if (\n typeof __DEV__ === 'boolean' &&\n __DEV__ &&\n engine === defaultTRenderEngine\n ) {\n console.error('TRenderEngineProvider is missing in the render tree.');\n }\n return engine;\n}\n\n/**\n * A react component to share a {@link TRenderEngine} instance across different\n * rendered contents via {@link RenderHTMLSource}. This can significantly enhance\n * performance in applications with potentially dozens or hundreds of distinct\n * rendered snippets such as chat apps.\n *\n * @param props - Pass engine config here.\n */\nexport default function TRenderEngineProvider({\n children,\n ...config\n}: PropsWithChildren): ReactElement {\n const engine = useTRenderEngine(config);\n return (\n \n {children}\n \n );\n}\n\n/**\n * @ignore\n */\nTRenderEngineProvider.defaultProps = defaultTRenderEngineProviderProps;\n\n/**\n * @ignore\n */\nTRenderEngineProvider.propTypes = tRenderEngineProviderPropTypes;\n","/** Types of elements found in htmlparser2's DOM */\nexport var ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for `.\n this.sequenceIndex = Number(c === 60 /* Lt */);\n }\n };\n Tokenizer.prototype.stateCDATASequence = function (c) {\n if (c === Sequences.Cdata[this.sequenceIndex]) {\n if (++this.sequenceIndex === Sequences.Cdata.length) {\n this._state = 21 /* InCommentLike */;\n this.currentSequence = Sequences.CdataEnd;\n this.sequenceIndex = 0;\n this.sectionStart = this._index + 1;\n }\n }\n else {\n this.sequenceIndex = 0;\n this._state = 16 /* InDeclaration */;\n this.stateInDeclaration(c); // Reconsume the character\n }\n };\n /**\n * When we wait for one specific character, we can speed things up\n * by skipping through the buffer until we find it.\n *\n * @returns Whether the character was found.\n */\n Tokenizer.prototype.fastForwardTo = function (c) {\n while (++this._index < this.buffer.length) {\n if (this.buffer.charCodeAt(this._index) === c) {\n return true;\n }\n }\n /*\n * We increment the index at the end of the `parse` loop,\n * so set it to `buffer.length - 1` here.\n *\n * TODO: Refactor `parse` to increment index before calling states.\n */\n this._index = this.buffer.length - 1;\n return false;\n };\n /**\n * Comments and CDATA end with `-->` and `]]>`.\n *\n * Their common qualities are:\n * - Their end sequences have a distinct character they start with.\n * - That character is then repeated, so we have to check multiple repeats.\n * - All characters but the start character of the sequence can be skipped.\n */\n Tokenizer.prototype.stateInCommentLike = function (c) {\n if (c === this.currentSequence[this.sequenceIndex]) {\n if (++this.sequenceIndex === this.currentSequence.length) {\n // Remove 2 trailing chars\n var section = this.buffer.slice(this.sectionStart, this._index - 2);\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(section);\n }\n else {\n this.cbs.oncomment(section);\n }\n this.sequenceIndex = 0;\n this.sectionStart = this._index + 1;\n this._state = 1 /* Text */;\n }\n }\n else if (this.sequenceIndex === 0) {\n // Fast-forward to the first character of the sequence\n if (this.fastForwardTo(this.currentSequence[0])) {\n this.sequenceIndex = 1;\n }\n }\n else if (c !== this.currentSequence[this.sequenceIndex - 1]) {\n // Allow long sequences, eg. --->, ]]]>\n this.sequenceIndex = 0;\n }\n };\n /**\n * HTML only allows ASCII alpha characters (a-z and A-Z) at the beginning of a tag name.\n *\n * XML allows a lot more characters here (@see https://www.w3.org/TR/REC-xml/#NT-NameStartChar).\n * We allow anything that wouldn't end the tag.\n */\n Tokenizer.prototype.isTagStartChar = function (c) {\n return this.xmlMode ? !isEndOfTagSection(c) : isASCIIAlpha(c);\n };\n Tokenizer.prototype.startSpecial = function (sequence, offset) {\n this.isSpecial = true;\n this.currentSequence = sequence;\n this.sequenceIndex = offset;\n this._state = 23 /* SpecialStartSequence */;\n };\n Tokenizer.prototype.stateBeforeTagName = function (c) {\n if (c === 33 /* ExclamationMark */) {\n this._state = 15 /* BeforeDeclaration */;\n this.sectionStart = this._index + 1;\n }\n else if (c === 63 /* Questionmark */) {\n this._state = 17 /* InProcessingInstruction */;\n this.sectionStart = this._index + 1;\n }\n else if (this.isTagStartChar(c)) {\n var lower = c | 0x20;\n this.sectionStart = this._index;\n if (!this.xmlMode && lower === Sequences.TitleEnd[2]) {\n this.startSpecial(Sequences.TitleEnd, 3);\n }\n else {\n this._state =\n !this.xmlMode && lower === Sequences.ScriptEnd[2]\n ? 22 /* BeforeSpecialS */\n : 3 /* InTagName */;\n }\n }\n else if (c === 47 /* Slash */) {\n this._state = 5 /* BeforeClosingTagName */;\n }\n else {\n this._state = 1 /* Text */;\n this.stateText(c);\n }\n };\n Tokenizer.prototype.stateInTagName = function (c) {\n if (isEndOfTagSection(c)) {\n this.cbs.onopentagname(this.getSection());\n this.sectionStart = -1;\n this._state = 8 /* BeforeAttributeName */;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateBeforeClosingTagName = function (c) {\n if (isWhitespace(c)) {\n // Ignore\n }\n else if (c === 62 /* Gt */) {\n this._state = 1 /* Text */;\n }\n else {\n this._state = this.isTagStartChar(c)\n ? 6 /* InClosingTagName */\n : 20 /* InSpecialComment */;\n this.sectionStart = this._index;\n }\n };\n Tokenizer.prototype.stateInClosingTagName = function (c) {\n if (c === 62 /* Gt */ || isWhitespace(c)) {\n this.cbs.onclosetag(this.getSection());\n this.sectionStart = -1;\n this._state = 7 /* AfterClosingTagName */;\n this.stateAfterClosingTagName(c);\n }\n };\n Tokenizer.prototype.stateAfterClosingTagName = function (c) {\n // Skip everything until \">\"\n if (c === 62 /* Gt */ || this.fastForwardTo(62 /* Gt */)) {\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeName = function (c) {\n if (c === 62 /* Gt */) {\n this.cbs.onopentagend();\n if (this.isSpecial) {\n this._state = 24 /* InSpecialTag */;\n this.sequenceIndex = 0;\n }\n else {\n this._state = 1 /* Text */;\n }\n this.baseState = this._state;\n this.sectionStart = this._index + 1;\n }\n else if (c === 47 /* Slash */) {\n this._state = 4 /* InSelfClosingTag */;\n }\n else if (!isWhitespace(c)) {\n this._state = 9 /* InAttributeName */;\n this.sectionStart = this._index;\n }\n };\n Tokenizer.prototype.stateInSelfClosingTag = function (c) {\n if (c === 62 /* Gt */) {\n this.cbs.onselfclosingtag();\n this._state = 1 /* Text */;\n this.baseState = 1 /* Text */;\n this.sectionStart = this._index + 1;\n this.isSpecial = false; // Reset special state, in case of self-closing special tags\n }\n else if (!isWhitespace(c)) {\n this._state = 8 /* BeforeAttributeName */;\n this.stateBeforeAttributeName(c);\n }\n };\n Tokenizer.prototype.stateInAttributeName = function (c) {\n if (c === 61 /* Eq */ || isEndOfTagSection(c)) {\n this.cbs.onattribname(this.getSection());\n this.sectionStart = -1;\n this._state = 10 /* AfterAttributeName */;\n this.stateAfterAttributeName(c);\n }\n };\n Tokenizer.prototype.stateAfterAttributeName = function (c) {\n if (c === 61 /* Eq */) {\n this._state = 11 /* BeforeAttributeValue */;\n }\n else if (c === 47 /* Slash */ || c === 62 /* Gt */) {\n this.cbs.onattribend(undefined);\n this._state = 8 /* BeforeAttributeName */;\n this.stateBeforeAttributeName(c);\n }\n else if (!isWhitespace(c)) {\n this.cbs.onattribend(undefined);\n this._state = 9 /* InAttributeName */;\n this.sectionStart = this._index;\n }\n };\n Tokenizer.prototype.stateBeforeAttributeValue = function (c) {\n if (c === 34 /* DoubleQuote */) {\n this._state = 12 /* InAttributeValueDq */;\n this.sectionStart = this._index + 1;\n }\n else if (c === 39 /* SingleQuote */) {\n this._state = 13 /* InAttributeValueSq */;\n this.sectionStart = this._index + 1;\n }\n else if (!isWhitespace(c)) {\n this.sectionStart = this._index;\n this._state = 14 /* InAttributeValueNq */;\n this.stateInAttributeValueNoQuotes(c); // Reconsume token\n }\n };\n Tokenizer.prototype.handleInAttributeValue = function (c, quote) {\n if (c === quote ||\n (!this.decodeEntities && this.fastForwardTo(quote))) {\n this.cbs.onattribdata(this.getSection());\n this.sectionStart = -1;\n this.cbs.onattribend(String.fromCharCode(quote));\n this._state = 8 /* BeforeAttributeName */;\n }\n else if (this.decodeEntities && c === 38 /* Amp */) {\n this.baseState = this._state;\n this._state = 25 /* BeforeEntity */;\n }\n };\n Tokenizer.prototype.stateInAttributeValueDoubleQuotes = function (c) {\n this.handleInAttributeValue(c, 34 /* DoubleQuote */);\n };\n Tokenizer.prototype.stateInAttributeValueSingleQuotes = function (c) {\n this.handleInAttributeValue(c, 39 /* SingleQuote */);\n };\n Tokenizer.prototype.stateInAttributeValueNoQuotes = function (c) {\n if (isWhitespace(c) || c === 62 /* Gt */) {\n this.cbs.onattribdata(this.getSection());\n this.sectionStart = -1;\n this.cbs.onattribend(null);\n this._state = 8 /* BeforeAttributeName */;\n this.stateBeforeAttributeName(c);\n }\n else if (this.decodeEntities && c === 38 /* Amp */) {\n this.baseState = this._state;\n this._state = 25 /* BeforeEntity */;\n }\n };\n Tokenizer.prototype.stateBeforeDeclaration = function (c) {\n if (c === 91 /* OpeningSquareBracket */) {\n this._state = 19 /* CDATASequence */;\n this.sequenceIndex = 0;\n }\n else {\n this._state =\n c === 45 /* Dash */\n ? 18 /* BeforeComment */\n : 16 /* InDeclaration */;\n }\n };\n Tokenizer.prototype.stateInDeclaration = function (c) {\n if (c === 62 /* Gt */ || this.fastForwardTo(62 /* Gt */)) {\n this.cbs.ondeclaration(this.getSection());\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n };\n Tokenizer.prototype.stateInProcessingInstruction = function (c) {\n if (c === 62 /* Gt */ || this.fastForwardTo(62 /* Gt */)) {\n this.cbs.onprocessinginstruction(this.getSection());\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeComment = function (c) {\n if (c === 45 /* Dash */) {\n this._state = 21 /* InCommentLike */;\n this.currentSequence = Sequences.CommentEnd;\n // Allow short comments (eg. )\n this.sequenceIndex = 2;\n this.sectionStart = this._index + 1;\n }\n else {\n this._state = 16 /* InDeclaration */;\n }\n };\n Tokenizer.prototype.stateInSpecialComment = function (c) {\n if (c === 62 /* Gt */ || this.fastForwardTo(62 /* Gt */)) {\n this.cbs.oncomment(this.getSection());\n this._state = 1 /* Text */;\n this.sectionStart = this._index + 1;\n }\n };\n Tokenizer.prototype.stateBeforeSpecialS = function (c) {\n var lower = c | 0x20;\n if (lower === Sequences.ScriptEnd[3]) {\n this.startSpecial(Sequences.ScriptEnd, 4);\n }\n else if (lower === Sequences.StyleEnd[3]) {\n this.startSpecial(Sequences.StyleEnd, 4);\n }\n else {\n this._state = 3 /* InTagName */;\n this.stateInTagName(c); // Consume the token again\n }\n };\n Tokenizer.prototype.stateBeforeEntity = function (c) {\n // Start excess with 1 to include the '&'\n this.entityExcess = 1;\n if (c === 35 /* Num */) {\n this._state = 26 /* BeforeNumericEntity */;\n }\n else if (c === 38 /* Amp */) {\n // We have two `&` characters in a row. Stay in the current state.\n }\n else {\n this.trieIndex = 0;\n this.trieCurrent = this.entityTrie[0];\n this.trieResult = null;\n this._state = 27 /* InNamedEntity */;\n this.stateInNamedEntity(c);\n }\n };\n Tokenizer.prototype.stateInNamedEntity = function (c) {\n this.entityExcess += 1;\n this.trieIndex = (0, decode_1.determineBranch)(this.entityTrie, this.trieCurrent, this.trieIndex + 1, c);\n if (this.trieIndex < 0) {\n this.emitNamedEntity();\n this._index--;\n return;\n }\n this.trieCurrent = this.entityTrie[this.trieIndex];\n // If the branch is a value, store it and continue\n if (this.trieCurrent & decode_1.BinTrieFlags.HAS_VALUE) {\n // If we have a legacy entity while parsing strictly, just skip the number of bytes\n if (!this.allowLegacyEntity() && c !== 59 /* Semi */) {\n // No need to consider multi-byte values, as the legacy entity is always a single byte\n this.trieIndex += 1;\n }\n else {\n // Add 1 as we have already incremented the excess\n var entityStart = this._index - this.entityExcess + 1;\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.buffer.substring(this.sectionStart, entityStart));\n }\n // If this is a surrogate pair, combine the higher bits from the node with the next byte\n this.trieResult =\n this.trieCurrent & decode_1.BinTrieFlags.MULTI_BYTE\n ? String.fromCharCode(this.entityTrie[++this.trieIndex], this.entityTrie[++this.trieIndex])\n : String.fromCharCode(this.entityTrie[++this.trieIndex]);\n this.entityExcess = 0;\n this.sectionStart = this._index + 1;\n }\n }\n };\n Tokenizer.prototype.emitNamedEntity = function () {\n if (this.trieResult) {\n this.emitPartial(this.trieResult);\n }\n this._state = this.baseState;\n };\n Tokenizer.prototype.stateBeforeNumericEntity = function (c) {\n if ((c | 0x20) === 120 /* LowerX */) {\n this.entityExcess++;\n this._state = 29 /* InHexEntity */;\n }\n else {\n this._state = 28 /* InNumericEntity */;\n this.stateInNumericEntity(c);\n }\n };\n Tokenizer.prototype.decodeNumericEntity = function (base, strict) {\n var entityStart = this._index - this.entityExcess - 1;\n var numberStart = entityStart + 2 + (base >> 4);\n if (numberStart !== this._index) {\n // Emit leading data if any\n if (entityStart > this.sectionStart) {\n this.emitPartial(this.buffer.substring(this.sectionStart, entityStart));\n }\n // Parse entity\n var entity = this.buffer.substring(numberStart, this._index);\n var parsed = parseInt(entity, base);\n this.emitPartial((0, decode_codepoint_1.default)(parsed));\n this.sectionStart = this._index + Number(strict);\n }\n this._state = this.baseState;\n };\n Tokenizer.prototype.stateInNumericEntity = function (c) {\n if (c === 59 /* Semi */) {\n this.decodeNumericEntity(10, true);\n }\n else if (!isNumber(c)) {\n if (this.allowLegacyEntity()) {\n this.decodeNumericEntity(10, false);\n }\n else {\n this._state = this.baseState;\n }\n this._index--;\n }\n else {\n this.entityExcess++;\n }\n };\n Tokenizer.prototype.stateInHexEntity = function (c) {\n if (c === 59 /* Semi */) {\n this.decodeNumericEntity(16, true);\n }\n else if ((c < 97 /* LowerA */ || c > 102 /* LowerF */) &&\n (c < 65 /* UpperA */ || c > 70 /* UpperF */) &&\n !isNumber(c)) {\n if (this.allowLegacyEntity()) {\n this.decodeNumericEntity(16, false);\n }\n else {\n this._state = this.baseState;\n }\n this._index--;\n }\n else {\n this.entityExcess++;\n }\n };\n Tokenizer.prototype.allowLegacyEntity = function () {\n return (!this.xmlMode &&\n (this.baseState === 1 /* Text */ ||\n this.baseState === 24 /* InSpecialTag */));\n };\n /**\n * Remove data that has already been consumed from the buffer.\n */\n Tokenizer.prototype.cleanup = function () {\n // If we are inside of text, emit what we already have.\n if (this.running &&\n this.sectionStart !== this._index &&\n (this._state === 1 /* Text */ ||\n (this._state === 24 /* InSpecialTag */ &&\n this.sequenceIndex === 0))) {\n // TODO: We could emit attribute data here as well.\n this.cbs.ontext(this.buffer.substr(this.sectionStart));\n this.sectionStart = this._index;\n }\n var start = this.sectionStart < 0 ? this._index : this.sectionStart;\n this.buffer =\n start === this.buffer.length ? \"\" : this.buffer.substr(start);\n this._index -= start;\n this.bufferOffset += start;\n if (this.sectionStart > 0) {\n this.sectionStart = 0;\n }\n };\n Tokenizer.prototype.shouldContinue = function () {\n return this._index < this.buffer.length && this.running;\n };\n /**\n * Iterates through the buffer, calling the function corresponding to the current state.\n *\n * States that are more likely to be hit are higher up, as a performance improvement.\n */\n Tokenizer.prototype.parse = function () {\n while (this.shouldContinue()) {\n var c = this.buffer.charCodeAt(this._index);\n if (this._state === 1 /* Text */) {\n this.stateText(c);\n }\n else if (this._state === 23 /* SpecialStartSequence */) {\n this.stateSpecialStartSequence(c);\n }\n else if (this._state === 24 /* InSpecialTag */) {\n this.stateInSpecialTag(c);\n }\n else if (this._state === 19 /* CDATASequence */) {\n this.stateCDATASequence(c);\n }\n else if (this._state === 12 /* InAttributeValueDq */) {\n this.stateInAttributeValueDoubleQuotes(c);\n }\n else if (this._state === 9 /* InAttributeName */) {\n this.stateInAttributeName(c);\n }\n else if (this._state === 21 /* InCommentLike */) {\n this.stateInCommentLike(c);\n }\n else if (this._state === 20 /* InSpecialComment */) {\n this.stateInSpecialComment(c);\n }\n else if (this._state === 8 /* BeforeAttributeName */) {\n this.stateBeforeAttributeName(c);\n }\n else if (this._state === 3 /* InTagName */) {\n this.stateInTagName(c);\n }\n else if (this._state === 6 /* InClosingTagName */) {\n this.stateInClosingTagName(c);\n }\n else if (this._state === 2 /* BeforeTagName */) {\n this.stateBeforeTagName(c);\n }\n else if (this._state === 10 /* AfterAttributeName */) {\n this.stateAfterAttributeName(c);\n }\n else if (this._state === 13 /* InAttributeValueSq */) {\n this.stateInAttributeValueSingleQuotes(c);\n }\n else if (this._state === 11 /* BeforeAttributeValue */) {\n this.stateBeforeAttributeValue(c);\n }\n else if (this._state === 5 /* BeforeClosingTagName */) {\n this.stateBeforeClosingTagName(c);\n }\n else if (this._state === 7 /* AfterClosingTagName */) {\n this.stateAfterClosingTagName(c);\n }\n else if (this._state === 22 /* BeforeSpecialS */) {\n this.stateBeforeSpecialS(c);\n }\n else if (this._state === 14 /* InAttributeValueNq */) {\n this.stateInAttributeValueNoQuotes(c);\n }\n else if (this._state === 4 /* InSelfClosingTag */) {\n this.stateInSelfClosingTag(c);\n }\n else if (this._state === 16 /* InDeclaration */) {\n this.stateInDeclaration(c);\n }\n else if (this._state === 15 /* BeforeDeclaration */) {\n this.stateBeforeDeclaration(c);\n }\n else if (this._state === 18 /* BeforeComment */) {\n this.stateBeforeComment(c);\n }\n else if (this._state === 17 /* InProcessingInstruction */) {\n this.stateInProcessingInstruction(c);\n }\n else if (this._state === 27 /* InNamedEntity */) {\n this.stateInNamedEntity(c);\n }\n else if (this._state === 25 /* BeforeEntity */) {\n this.stateBeforeEntity(c);\n }\n else if (this._state === 29 /* InHexEntity */) {\n this.stateInHexEntity(c);\n }\n else if (this._state === 28 /* InNumericEntity */) {\n this.stateInNumericEntity(c);\n }\n else {\n // `this._state === State.BeforeNumericEntity`\n this.stateBeforeNumericEntity(c);\n }\n this._index++;\n }\n this.cleanup();\n };\n Tokenizer.prototype.finish = function () {\n if (this._state === 27 /* InNamedEntity */) {\n this.emitNamedEntity();\n }\n // If there is remaining data, emit it in a reasonable way\n if (this.sectionStart < this._index) {\n this.handleTrailingData();\n }\n this.cbs.onend();\n };\n /** Handle any trailing data. */\n Tokenizer.prototype.handleTrailingData = function () {\n var data = this.buffer.substr(this.sectionStart);\n if (this._state === 21 /* InCommentLike */) {\n if (this.currentSequence === Sequences.CdataEnd) {\n this.cbs.oncdata(data);\n }\n else {\n this.cbs.oncomment(data);\n }\n }\n else if (this._state === 28 /* InNumericEntity */ &&\n this.allowLegacyEntity()) {\n this.decodeNumericEntity(10, false);\n // All trailing data will have been consumed\n }\n else if (this._state === 29 /* InHexEntity */ &&\n this.allowLegacyEntity()) {\n this.decodeNumericEntity(16, false);\n // All trailing data will have been consumed\n }\n else if (this._state === 3 /* InTagName */ ||\n this._state === 8 /* BeforeAttributeName */ ||\n this._state === 11 /* BeforeAttributeValue */ ||\n this._state === 10 /* AfterAttributeName */ ||\n this._state === 9 /* InAttributeName */ ||\n this._state === 13 /* InAttributeValueSq */ ||\n this._state === 12 /* InAttributeValueDq */ ||\n this._state === 14 /* InAttributeValueNq */ ||\n this._state === 6 /* InClosingTagName */) {\n /*\n * If we are currently in an opening or closing tag, us not calling the\n * respective callback signals that the tag should be ignored.\n */\n }\n else {\n this.cbs.ontext(data);\n }\n };\n Tokenizer.prototype.getSection = function () {\n return this.buffer.substring(this.sectionStart, this._index);\n };\n Tokenizer.prototype.emitPartial = function (value) {\n if (this.baseState !== 1 /* Text */ &&\n this.baseState !== 24 /* InSpecialTag */) {\n this.cbs.onattribdata(value);\n }\n else {\n this.cbs.ontext(value);\n }\n };\n return Tokenizer;\n}());\nexports.default = Tokenizer;\n","\"use strict\";\n// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar decodeMap = new Map([\n [0, 65533],\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\nvar fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, node/no-unsupported-features/es-builtins\nString.fromCodePoint ||\n function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n };\nfunction decodeCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return \"\\uFFFD\";\n }\n return fromCodePoint((_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint);\n}\nexports.default = decodeCodePoint;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseFeed = exports.FeedHandler = exports.getFeed = void 0;\nvar domhandler_1 = __importDefault(require(\"domhandler\"));\nvar domutils_1 = require(\"domutils\");\nObject.defineProperty(exports, \"getFeed\", { enumerable: true, get: function () { return domutils_1.getFeed; } });\nvar Parser_1 = require(\"./Parser\");\n/** @deprecated Handler is no longer necessary; use `getFeed` or `parseFeed` instead. */\nvar FeedHandler = /** @class */ (function (_super) {\n __extends(FeedHandler, _super);\n /**\n *\n * @param callback\n * @param options\n */\n function FeedHandler(callback, options) {\n var _this = this;\n if (typeof callback === \"object\") {\n callback = undefined;\n options = callback;\n }\n _this = _super.call(this, callback, options) || this;\n return _this;\n }\n FeedHandler.prototype.onend = function () {\n var feed = (0, domutils_1.getFeed)(this.dom);\n if (feed) {\n this.feed = feed;\n this.handleCallback(null);\n }\n else {\n this.handleCallback(new Error(\"couldn't find root of feed\"));\n }\n };\n return FeedHandler;\n}(domhandler_1.default));\nexports.FeedHandler = FeedHandler;\n/**\n * Parse a feed.\n *\n * @param feed The feed that should be parsed, as a string.\n * @param options Optionally, options for parsing. When using this, you should set `xmlMode` to `true`.\n */\nfunction parseFeed(feed, options) {\n if (options === void 0) { options = { xmlMode: true }; }\n var handler = new domhandler_1.default(null, options);\n new Parser_1.Parser(handler, options).end(feed);\n return (0, domutils_1.getFeed)(handler.dom);\n}\nexports.parseFeed = parseFeed;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.innerText = exports.textContent = exports.getText = exports.getInnerHTML = exports.getOuterHTML = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar dom_serializer_1 = __importDefault(require(\"dom-serializer\"));\nvar domelementtype_1 = require(\"domelementtype\");\n/**\n * @param node Node to get the outer HTML of.\n * @param options Options for serialization.\n * @deprecated Use the `dom-serializer` module directly.\n * @returns `node`'s outer HTML.\n */\nfunction getOuterHTML(node, options) {\n return (0, dom_serializer_1.default)(node, options);\n}\nexports.getOuterHTML = getOuterHTML;\n/**\n * @param node Node to get the inner HTML of.\n * @param options Options for serialization.\n * @deprecated Use the `dom-serializer` module directly.\n * @returns `node`'s inner HTML.\n */\nfunction getInnerHTML(node, options) {\n return (0, domhandler_1.hasChildren)(node)\n ? node.children.map(function (node) { return getOuterHTML(node, options); }).join(\"\")\n : \"\";\n}\nexports.getInnerHTML = getInnerHTML;\n/**\n * Get a node's inner text. Same as `textContent`, but inserts newlines for `
` tags.\n *\n * @deprecated Use `textContent` instead.\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n */\nfunction getText(node) {\n if (Array.isArray(node))\n return node.map(getText).join(\"\");\n if ((0, domhandler_1.isTag)(node))\n return node.name === \"br\" ? \"\\n\" : getText(node.children);\n if ((0, domhandler_1.isCDATA)(node))\n return getText(node.children);\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.getText = getText;\n/**\n * Get a node's text content.\n *\n * @param node Node to get the text content of.\n * @returns `node`'s text content.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/textContent}\n */\nfunction textContent(node) {\n if (Array.isArray(node))\n return node.map(textContent).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && !(0, domhandler_1.isComment)(node)) {\n return textContent(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.textContent = textContent;\n/**\n * Get a node's inner text.\n *\n * @param node Node to get the inner text of.\n * @returns `node`'s inner text.\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Node/innerText}\n */\nfunction innerText(node) {\n if (Array.isArray(node))\n return node.map(innerText).join(\"\");\n if ((0, domhandler_1.hasChildren)(node) && (node.type === domelementtype_1.ElementType.Tag || (0, domhandler_1.isCDATA)(node))) {\n return innerText(node.children);\n }\n if ((0, domhandler_1.isText)(node))\n return node.data;\n return \"\";\n}\nexports.innerText = innerText;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeHTML = exports.decodeHTMLStrict = exports.decodeXML = void 0;\nvar entities_json_1 = __importDefault(require(\"./maps/entities.json\"));\nvar legacy_json_1 = __importDefault(require(\"./maps/legacy.json\"));\nvar xml_json_1 = __importDefault(require(\"./maps/xml.json\"));\nvar decode_codepoint_1 = __importDefault(require(\"./decode_codepoint\"));\nvar strictEntityRe = /&(?:[a-zA-Z0-9]+|#[xX][\\da-fA-F]+|#\\d+);/g;\nexports.decodeXML = getStrictDecoder(xml_json_1.default);\nexports.decodeHTMLStrict = getStrictDecoder(entities_json_1.default);\nfunction getStrictDecoder(map) {\n var replace = getReplacer(map);\n return function (str) { return String(str).replace(strictEntityRe, replace); };\n}\nvar sorter = function (a, b) { return (a < b ? 1 : -1); };\nexports.decodeHTML = (function () {\n var legacy = Object.keys(legacy_json_1.default).sort(sorter);\n var keys = Object.keys(entities_json_1.default).sort(sorter);\n for (var i = 0, j = 0; i < keys.length; i++) {\n if (legacy[j] === keys[i]) {\n keys[i] += \";?\";\n j++;\n }\n else {\n keys[i] += \";\";\n }\n }\n var re = new RegExp(\"&(?:\" + keys.join(\"|\") + \"|#[xX][\\\\da-fA-F]+;?|#\\\\d+;?)\", \"g\");\n var replace = getReplacer(entities_json_1.default);\n function replacer(str) {\n if (str.substr(-1) !== \";\")\n str += \";\";\n return replace(str);\n }\n // TODO consider creating a merged map\n return function (str) { return String(str).replace(re, replacer); };\n})();\nfunction getReplacer(map) {\n return function replace(str) {\n if (str.charAt(1) === \"#\") {\n var secondChar = str.charAt(2);\n if (secondChar === \"X\" || secondChar === \"x\") {\n return decode_codepoint_1.default(parseInt(str.substr(3), 16));\n }\n return decode_codepoint_1.default(parseInt(str.substr(2), 10));\n }\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n return map[str.slice(1, -1)] || str;\n };\n}\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.escapeUTF8 = exports.escape = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.encodeXML = void 0;\nvar xml_json_1 = __importDefault(require(\"./maps/xml.json\"));\nvar inverseXML = getInverseObj(xml_json_1.default);\nvar xmlReplacer = getInverseReplacer(inverseXML);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nexports.encodeXML = getASCIIEncoder(inverseXML);\nvar entities_json_1 = __importDefault(require(\"./maps/entities.json\"));\nvar inverseHTML = getInverseObj(entities_json_1.default);\nvar htmlReplacer = getInverseReplacer(inverseHTML);\n/**\n * Encodes all entities and non-ASCII characters in the input.\n *\n * This includes characters that are valid ASCII characters in HTML documents.\n * For example `#` will be encoded as `#`. To get a more compact output,\n * consider using the `encodeNonAsciiHTML` function.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nexports.encodeHTML = getInverse(inverseHTML, htmlReplacer);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in HTML\n * documents using HTML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nexports.encodeNonAsciiHTML = getASCIIEncoder(inverseHTML);\nfunction getInverseObj(obj) {\n return Object.keys(obj)\n .sort()\n .reduce(function (inverse, name) {\n inverse[obj[name]] = \"&\" + name + \";\";\n return inverse;\n }, {});\n}\nfunction getInverseReplacer(inverse) {\n var single = [];\n var multiple = [];\n for (var _i = 0, _a = Object.keys(inverse); _i < _a.length; _i++) {\n var k = _a[_i];\n if (k.length === 1) {\n // Add value to single array\n single.push(\"\\\\\" + k);\n }\n else {\n // Add value to multiple array\n multiple.push(k);\n }\n }\n // Add ranges to single characters.\n single.sort();\n for (var start = 0; start < single.length - 1; start++) {\n // Find the end of a run of characters\n var end = start;\n while (end < single.length - 1 &&\n single[end].charCodeAt(1) + 1 === single[end + 1].charCodeAt(1)) {\n end += 1;\n }\n var count = 1 + end - start;\n // We want to replace at least three characters\n if (count < 3)\n continue;\n single.splice(start, count, single[start] + \"-\" + single[end]);\n }\n multiple.unshift(\"[\" + single.join(\"\") + \"]\");\n return new RegExp(multiple.join(\"|\"), \"g\");\n}\n// /[^\\0-\\x7F]/gu\nvar reNonASCII = /(?:[\\x80-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])/g;\nvar getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt != null\n ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n function (str) { return str.codePointAt(0); }\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n function (c) {\n return (c.charCodeAt(0) - 0xd800) * 0x400 +\n c.charCodeAt(1) -\n 0xdc00 +\n 0x10000;\n };\nfunction singleCharReplacer(c) {\n return \"&#x\" + (c.length > 1 ? getCodePoint(c) : c.charCodeAt(0))\n .toString(16)\n .toUpperCase() + \";\";\n}\nfunction getInverse(inverse, re) {\n return function (data) {\n return data\n .replace(re, function (name) { return inverse[name]; })\n .replace(reNonASCII, singleCharReplacer);\n };\n}\nvar reEscapeChars = new RegExp(xmlReplacer.source + \"|\" + reNonASCII.source, \"g\");\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nfunction escape(data) {\n return data.replace(reEscapeChars, singleCharReplacer);\n}\nexports.escape = escape;\n/**\n * Encodes all characters not valid in XML documents using numeric hexadecimal\n * reference (eg. `ü`).\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nfunction escapeUTF8(data) {\n return data.replace(xmlReplacer, singleCharReplacer);\n}\nexports.escapeUTF8 = escapeUTF8;\nfunction getASCIIEncoder(obj) {\n return function (data) {\n return data.replace(reEscapeChars, function (c) { return obj[c] || singleCharReplacer(c); });\n };\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.findAll = exports.existsOne = exports.findOne = exports.findOneChild = exports.find = exports.filter = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Search a node and its children for nodes passing a test function.\n *\n * @param test Function to test nodes on.\n * @param node Node to search. Will be included in the result set if it matches.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction filter(test, node, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n if (!Array.isArray(node))\n node = [node];\n return find(test, node, recurse, limit);\n}\nexports.filter = filter;\n/**\n * Search an array of node and its children for nodes passing a test function.\n *\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes passing `test`.\n */\nfunction find(test, nodes, recurse, limit) {\n var result = [];\n for (var _i = 0, nodes_1 = nodes; _i < nodes_1.length; _i++) {\n var elem = nodes_1[_i];\n if (test(elem)) {\n result.push(elem);\n if (--limit <= 0)\n break;\n }\n if (recurse && (0, domhandler_1.hasChildren)(elem) && elem.children.length > 0) {\n var children = find(test, elem.children, recurse, limit);\n result.push.apply(result, children);\n limit -= children.length;\n if (limit <= 0)\n break;\n }\n }\n return result;\n}\nexports.find = find;\n/**\n * Finds the first element inside of an array that matches a test function.\n *\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns The first node in the array that passes `test`.\n */\nfunction findOneChild(test, nodes) {\n return nodes.find(test);\n}\nexports.findOneChild = findOneChild;\n/**\n * Finds one element in a tree that passes a test.\n *\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @param recurse Also consider child nodes.\n * @returns The first child node that passes `test`.\n */\nfunction findOne(test, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n var elem = null;\n for (var i = 0; i < nodes.length && !elem; i++) {\n var checked = nodes[i];\n if (!(0, domhandler_1.isTag)(checked)) {\n continue;\n }\n else if (test(checked)) {\n elem = checked;\n }\n else if (recurse && checked.children.length > 0) {\n elem = findOne(test, checked.children);\n }\n }\n return elem;\n}\nexports.findOne = findOne;\n/**\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns Whether a tree of nodes contains at least one node passing a test.\n */\nfunction existsOne(test, nodes) {\n return nodes.some(function (checked) {\n return (0, domhandler_1.isTag)(checked) &&\n (test(checked) ||\n (checked.children.length > 0 &&\n existsOne(test, checked.children)));\n });\n}\nexports.existsOne = existsOne;\n/**\n * Search and array of nodes and its children for nodes passing a test function.\n *\n * Same as `find`, only with less options, leading to reduced complexity.\n *\n * @param test Function to test nodes on.\n * @param nodes Array of nodes to search.\n * @returns All nodes passing `test`.\n */\nfunction findAll(test, nodes) {\n var _a;\n var result = [];\n var stack = nodes.filter(domhandler_1.isTag);\n var elem;\n while ((elem = stack.shift())) {\n var children = (_a = elem.children) === null || _a === void 0 ? void 0 : _a.filter(domhandler_1.isTag);\n if (children && children.length > 0) {\n stack.unshift.apply(stack, children);\n }\n if (test(elem))\n result.push(elem);\n }\n return result;\n}\nexports.findAll = findAll;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getElementsByTagType = exports.getElementsByTagName = exports.getElementById = exports.getElements = exports.testElement = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar querying_1 = require(\"./querying\");\nvar Checks = {\n tag_name: function (name) {\n if (typeof name === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && name(elem.name); };\n }\n else if (name === \"*\") {\n return domhandler_1.isTag;\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.name === name; };\n },\n tag_type: function (type) {\n if (typeof type === \"function\") {\n return function (elem) { return type(elem.type); };\n }\n return function (elem) { return elem.type === type; };\n },\n tag_contains: function (data) {\n if (typeof data === \"function\") {\n return function (elem) { return (0, domhandler_1.isText)(elem) && data(elem.data); };\n }\n return function (elem) { return (0, domhandler_1.isText)(elem) && elem.data === data; };\n },\n};\n/**\n * @param attrib Attribute to check.\n * @param value Attribute value to look for.\n * @returns A function to check whether the a node has an attribute with a particular value.\n */\nfunction getAttribCheck(attrib, value) {\n if (typeof value === \"function\") {\n return function (elem) { return (0, domhandler_1.isTag)(elem) && value(elem.attribs[attrib]); };\n }\n return function (elem) { return (0, domhandler_1.isTag)(elem) && elem.attribs[attrib] === value; };\n}\n/**\n * @param a First function to combine.\n * @param b Second function to combine.\n * @returns A function taking a node and returning `true` if either\n * of the input functions returns `true` for the node.\n */\nfunction combineFuncs(a, b) {\n return function (elem) { return a(elem) || b(elem); };\n}\n/**\n * @param options An object describing nodes to look for.\n * @returns A function executing all checks in `options` and returning `true`\n * if any of them match a node.\n */\nfunction compileTest(options) {\n var funcs = Object.keys(options).map(function (key) {\n var value = options[key];\n return Object.prototype.hasOwnProperty.call(Checks, key)\n ? Checks[key](value)\n : getAttribCheck(key, value);\n });\n return funcs.length === 0 ? null : funcs.reduce(combineFuncs);\n}\n/**\n * @param options An object describing nodes to look for.\n * @param node The element to test.\n * @returns Whether the element matches the description in `options`.\n */\nfunction testElement(options, node) {\n var test = compileTest(options);\n return test ? test(node) : true;\n}\nexports.testElement = testElement;\n/**\n * @param options An object describing nodes to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes that match `options`.\n */\nfunction getElements(options, nodes, recurse, limit) {\n if (limit === void 0) { limit = Infinity; }\n var test = compileTest(options);\n return test ? (0, querying_1.filter)(test, nodes, recurse, limit) : [];\n}\nexports.getElements = getElements;\n/**\n * @param id The unique ID attribute value to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @returns The node with the supplied ID.\n */\nfunction getElementById(id, nodes, recurse) {\n if (recurse === void 0) { recurse = true; }\n if (!Array.isArray(nodes))\n nodes = [nodes];\n return (0, querying_1.findOne)(getAttribCheck(\"id\", id), nodes, recurse);\n}\nexports.getElementById = getElementById;\n/**\n * @param tagName Tag name to search for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `tagName`.\n */\nfunction getElementsByTagName(tagName, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_1.filter)(Checks.tag_name(tagName), nodes, recurse, limit);\n}\nexports.getElementsByTagName = getElementsByTagName;\n/**\n * @param type Element type to look for.\n * @param nodes Nodes to search through.\n * @param recurse Also consider child nodes.\n * @param limit Maximum number of nodes to return.\n * @returns All nodes with the supplied `type`.\n */\nfunction getElementsByTagType(type, nodes, recurse, limit) {\n if (recurse === void 0) { recurse = true; }\n if (limit === void 0) { limit = Infinity; }\n return (0, querying_1.filter)(Checks.tag_type(type), nodes, recurse, limit);\n}\nexports.getElementsByTagType = getElementsByTagType;\n","import { MixedStyleDeclaration } from '@native-html/css-processor';\nimport { textContent } from 'domutils';\nimport HTMLContentModel from './HTMLContentModel';\nimport HTMLElementModel from './HTMLElementModel';\nimport {\n AttribTagNames,\n EditsTagNames,\n EmbeddedTagNames,\n GroupingTagNames,\n InteractiveTagNames,\n MetadataTagNames,\n SectioningTagNames,\n TabularTagNames,\n TextLevelTagNames,\n UnsupportedTagNames,\n UntranslatableTagNames,\n HTMLModelRecord,\n ElementModelBase\n} from './model-types';\n\nconst UA_ANCHOR_COL = '#245dc1';\nconst UA_GRAY = '#CCC';\nconst UA_MARGIN_HZ = 30;\n\nconst bigMarginTopBottomStyle: MixedStyleDeclaration = {\n marginTop: '1em',\n marginBottom: '1em'\n};\n\nconst shortMarginTopBottomStyle: MixedStyleDeclaration = {\n marginTop: '.5em',\n marginBottom: '.5em'\n};\n\nconst lineThroughStyle: MixedStyleDeclaration = {\n textDecorationLine: 'line-through'\n};\n\nconst italicStyle: MixedStyleDeclaration = {\n fontStyle: 'italic'\n};\n\nconst monoStyle: MixedStyleDeclaration = {\n fontFamily: 'monospace'\n};\n\nconst boldStyle: MixedStyleDeclaration = {\n fontWeight: 'bold'\n};\n\nconst spacedBlockStyle: MixedStyleDeclaration = {\n ...bigMarginTopBottomStyle,\n marginLeft: UA_MARGIN_HZ,\n marginRight: UA_MARGIN_HZ\n};\n\nconst anchorStyle: MixedStyleDeclaration = {\n color: UA_ANCHOR_COL,\n textDecorationLine: 'underline',\n textDecorationColor: UA_ANCHOR_COL\n};\n\nconst leftBorderQuoteStyle: MixedStyleDeclaration = {\n borderLeftWidth: 2,\n borderLeftColor: UA_GRAY\n};\n\nconst dottedUnderlineStyle: MixedStyleDeclaration = {\n textDecorationLine: 'underline',\n textDecorationStyle: 'dotted'\n};\n\nconst solidUnderlineStyle: MixedStyleDeclaration = {\n textDecorationLine: 'underline',\n textDecorationStyle: 'solid'\n};\n\n// TODO, support directional styles\nconst listStyles: MixedStyleDeclaration = {\n ...bigMarginTopBottomStyle,\n paddingLeft: 30\n};\n\nconst preStyles: MixedStyleDeclaration = {\n whiteSpace: 'pre',\n ...monoStyle,\n ...bigMarginTopBottomStyle\n};\n\nfunction headerStyle(\n fontSize: string,\n marginSize: string\n): MixedStyleDeclaration {\n return {\n fontSize,\n marginTop: marginSize,\n marginBottom: marginSize,\n ...boldStyle\n };\n}\n\nconst getReactNativePropsForHeading: ElementModelBase['getReactNativeProps'] =\n ({ domNode }) => {\n const textLabel = textContent(domNode!);\n return {\n native: {\n accessible: true,\n accessibilityLabel: textLabel,\n accessibilityRole: 'header'\n }\n };\n };\n\nconst getReactNativePropsWithHref: ElementModelBase['getReactNativeProps'] =\n function getReactNativePropsWithHref({ attributes }) {\n if (typeof attributes.href === 'string' && attributes.href.length > 0) {\n return {\n native: {\n accessible: true,\n accessibilityRole: 'link'\n }\n };\n }\n };\n\nconst sectioningModelMap: HTMLModelRecord<\n SectioningTagNames,\n HTMLContentModel.block\n> = {\n address: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'address',\n mixedUAStyles: italicStyle\n }),\n article: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'article'\n }),\n aside: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'aside'\n }),\n body: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'body'\n }),\n footer: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'footer'\n }),\n h1: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'h1',\n mixedUAStyles: headerStyle('2em', '.67em'),\n getReactNativeProps: getReactNativePropsForHeading\n }),\n h2: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'h2',\n mixedUAStyles: headerStyle('1.5em', '.83em'),\n getReactNativeProps: getReactNativePropsForHeading\n }),\n h3: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'h3',\n mixedUAStyles: headerStyle('1.17em', '1em'),\n getReactNativeProps: getReactNativePropsForHeading\n }),\n h4: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'h4',\n mixedUAStyles: headerStyle('1em', '1.33em'),\n getReactNativeProps: getReactNativePropsForHeading\n }),\n h5: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'h5',\n mixedUAStyles: headerStyle('.83em', '1.67em'),\n getReactNativeProps: getReactNativePropsForHeading\n }),\n h6: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'h6',\n mixedUAStyles: headerStyle('.67em', '2.33em'),\n getReactNativeProps: getReactNativePropsForHeading\n }),\n header: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'header'\n }),\n hgroup: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'hgroup'\n }),\n nav: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'nav'\n }),\n section: HTMLElementModel.fromNativeModel({\n category: 'sectioning',\n tagName: 'section'\n })\n};\n\nconst unsupportedModelMap: HTMLModelRecord<\n UnsupportedTagNames,\n HTMLContentModel.none\n> = {\n area: HTMLElementModel.fromNativeModel({\n tagName: 'area',\n category: 'untranslatable',\n isVoid: true,\n getReactNativeProps: getReactNativePropsWithHref\n }),\n map: HTMLElementModel.fromNativeModel({\n tagName: 'map',\n category: 'untranslatable'\n })\n};\n\nconst attribsModelMap: HTMLModelRecord =\n {\n accesskey: HTMLElementModel.fromNativeModel({\n tagName: 'accesskey',\n category: 'untranslatable'\n }),\n caption: HTMLElementModel.fromNativeModel({\n tagName: 'caption',\n category: 'untranslatable'\n }),\n col: HTMLElementModel.fromNativeModel({\n tagName: 'col',\n category: 'untranslatable',\n isVoid: true\n }),\n colgroup: HTMLElementModel.fromNativeModel({\n tagName: 'colgroup',\n category: 'untranslatable'\n }),\n datalist: HTMLElementModel.fromNativeModel({\n tagName: 'datalist',\n category: 'untranslatable'\n }),\n source: HTMLElementModel.fromNativeModel({\n tagName: 'source',\n category: 'untranslatable',\n isVoid: true\n }),\n track: HTMLElementModel.fromNativeModel({\n tagName: 'track',\n category: 'untranslatable',\n isVoid: true\n }),\n optgroup: HTMLElementModel.fromNativeModel({\n tagName: 'optgroup',\n category: 'untranslatable'\n }),\n option: HTMLElementModel.fromNativeModel({\n tagName: 'option',\n category: 'untranslatable'\n }),\n param: HTMLElementModel.fromNativeModel({\n tagName: 'param',\n category: 'untranslatable',\n isVoid: true\n })\n };\n\nconst interactiveModelMap: HTMLModelRecord<\n InteractiveTagNames,\n HTMLContentModel.none\n> = {\n button: HTMLElementModel.fromNativeModel({\n tagName: 'button',\n category: 'interactive',\n reactNativeProps: {\n native: {\n accessibilityRole: 'button'\n }\n }\n }),\n fieldset: HTMLElementModel.fromNativeModel({\n tagName: 'fieldset',\n category: 'interactive'\n }),\n form: HTMLElementModel.fromNativeModel({\n tagName: 'form',\n category: 'interactive'\n }),\n input: HTMLElementModel.fromNativeModel({\n tagName: 'input',\n category: 'interactive',\n isVoid: true\n }),\n label: HTMLElementModel.fromNativeModel({\n tagName: 'label',\n category: 'interactive'\n }),\n legend: HTMLElementModel.fromNativeModel({\n tagName: 'legend',\n category: 'interactive'\n }),\n meter: HTMLElementModel.fromNativeModel({\n tagName: 'meter',\n category: 'interactive'\n }),\n progress: HTMLElementModel.fromNativeModel({\n tagName: 'progress',\n category: 'interactive'\n }),\n select: HTMLElementModel.fromNativeModel({\n tagName: 'select',\n category: 'interactive',\n reactNativeProps: {\n native: {\n accessible: true,\n accessibilityRole: 'combobox'\n }\n }\n }),\n details: HTMLElementModel.fromNativeModel({\n tagName: 'details',\n category: 'interactive'\n }),\n dialog: HTMLElementModel.fromNativeModel({\n tagName: 'dialog',\n category: 'interactive'\n }),\n output: HTMLElementModel.fromNativeModel({\n tagName: 'output',\n category: 'interactive'\n }),\n summary: HTMLElementModel.fromNativeModel({\n tagName: 'summary',\n category: 'interactive'\n }),\n textarea: HTMLElementModel.fromNativeModel({\n tagName: 'textarea',\n category: 'interactive'\n })\n};\n\nconst metadataModelMap: HTMLModelRecord<\n MetadataTagNames,\n HTMLContentModel.none\n> = {\n base: HTMLElementModel.fromNativeModel({\n tagName: 'base',\n category: 'untranslatable',\n isVoid: true\n }),\n head: HTMLElementModel.fromNativeModel({\n tagName: 'head',\n category: 'untranslatable',\n isOpaque: true\n }),\n link: HTMLElementModel.fromNativeModel({\n tagName: 'link',\n category: 'untranslatable',\n isVoid: true\n }),\n meta: HTMLElementModel.fromNativeModel({\n tagName: 'meta',\n category: 'untranslatable',\n isVoid: true\n }),\n title: HTMLElementModel.fromNativeModel({\n tagName: 'title',\n category: 'untranslatable'\n })\n};\n\nconst untranslatableModelMap: HTMLModelRecord<\n UntranslatableTagNames,\n HTMLContentModel.none\n> = {\n ...attribsModelMap,\n ...interactiveModelMap,\n ...unsupportedModelMap,\n ...metadataModelMap\n};\n\nconst groupingModelMap: HTMLModelRecord<\n GroupingTagNames,\n HTMLContentModel.block\n> = {\n blockquote: HTMLElementModel.fromNativeModel({\n tagName: 'blockquote',\n category: 'grouping',\n getMixedUAStyles: ({ attributes }) => {\n if (attributes.type === 'cite') {\n return leftBorderQuoteStyle;\n }\n },\n mixedUAStyles: spacedBlockStyle\n }),\n dd: HTMLElementModel.fromNativeModel({\n tagName: 'dd',\n category: 'grouping',\n mixedUAStyles: {\n marginLeft: UA_MARGIN_HZ\n }\n }),\n div: HTMLElementModel.fromNativeModel({\n tagName: 'div',\n category: 'grouping'\n }),\n dl: HTMLElementModel.fromNativeModel({\n tagName: 'dl',\n category: 'grouping',\n mixedUAStyles: bigMarginTopBottomStyle\n }),\n dt: HTMLElementModel.fromNativeModel({\n tagName: 'dt',\n category: 'grouping',\n mixedUAStyles: boldStyle\n }),\n figcaption: HTMLElementModel.fromNativeModel({\n tagName: 'figcaption',\n category: 'grouping',\n mixedUAStyles: {\n ...italicStyle,\n textAlign: 'center'\n }\n }),\n figure: HTMLElementModel.fromNativeModel({\n tagName: 'figure',\n category: 'grouping',\n mixedUAStyles: spacedBlockStyle\n }),\n hr: HTMLElementModel.fromNativeModel({\n tagName: 'hr',\n category: 'grouping',\n mixedUAStyles: {\n marginLeft: 'auto',\n marginRight: 'auto',\n height: 1,\n width: '100%',\n backgroundColor: UA_GRAY,\n ...shortMarginTopBottomStyle\n }\n }),\n li: HTMLElementModel.fromNativeModel({\n tagName: 'li',\n category: 'grouping'\n }),\n main: HTMLElementModel.fromNativeModel({\n tagName: 'main',\n category: 'grouping'\n }),\n menu: HTMLElementModel.fromNativeModel({\n tagName: 'menu',\n category: 'grouping'\n }),\n ol: HTMLElementModel.fromNativeModel({\n tagName: 'ol',\n category: 'grouping',\n mixedUAStyles: listStyles,\n setMarkersForTNode(targetMarkers, parentMarkers) {\n targetMarkers.olNestLevel = parentMarkers.olNestLevel + 1;\n }\n }),\n p: HTMLElementModel.fromNativeModel({\n tagName: 'p',\n category: 'grouping',\n mixedUAStyles: bigMarginTopBottomStyle\n }),\n pre: HTMLElementModel.fromNativeModel({\n tagName: 'pre',\n category: 'grouping',\n mixedUAStyles: preStyles\n }),\n xmp: HTMLElementModel.fromNativeModel({\n tagName: 'xmp',\n category: 'grouping',\n mixedUAStyles: preStyles\n }),\n listing: HTMLElementModel.fromNativeModel({\n tagName: 'listing',\n category: 'grouping',\n mixedUAStyles: preStyles\n }),\n plaintext: HTMLElementModel.fromNativeModel({\n tagName: 'plaintext',\n category: 'grouping',\n mixedUAStyles: preStyles\n }),\n ul: HTMLElementModel.fromNativeModel({\n tagName: 'ul',\n category: 'grouping',\n mixedUAStyles: listStyles,\n setMarkersForTNode(targetMarkers, parentMarkers) {\n targetMarkers.ulNestLevel = parentMarkers.ulNestLevel + 1;\n }\n }),\n dir: HTMLElementModel.fromNativeModel({\n tagName: 'dir',\n category: 'grouping',\n mixedUAStyles: listStyles\n })\n};\n\nconst tabularModelMap: HTMLModelRecord<\n TabularTagNames,\n HTMLContentModel.block\n> = {\n table: HTMLElementModel.fromNativeModel({\n tagName: 'table',\n category: 'tabular'\n }),\n tbody: HTMLElementModel.fromNativeModel({\n tagName: 'tbody',\n category: 'tabular'\n }),\n td: HTMLElementModel.fromNativeModel({\n tagName: 'td',\n category: 'tabular',\n mixedUAStyles: {\n padding: 2,\n flex: 1\n }\n }),\n tfoot: HTMLElementModel.fromNativeModel({\n tagName: 'tfoot',\n category: 'tabular'\n }),\n th: HTMLElementModel.fromNativeModel({\n tagName: 'th',\n category: 'tabular',\n mixedUAStyles: {\n padding: 2,\n flex: 1,\n fontWeight: 'bold'\n }\n }),\n thead: HTMLElementModel.fromNativeModel({\n tagName: 'thead',\n category: 'tabular'\n }),\n tr: HTMLElementModel.fromNativeModel({\n tagName: 'tr',\n category: 'tabular',\n mixedUAStyles: {\n flexDirection: 'row',\n flexWrap: 'nowrap'\n }\n })\n};\n\n// These emnbedded should be rendered by default.\nconst renderedEmbeddedModelMap: HTMLModelRecord<\n Extract,\n HTMLContentModel.block\n> = {\n img: HTMLElementModel.fromNativeModel({\n tagName: 'img',\n category: 'embedded',\n isVoid: true,\n getReactNativeProps({ attributes }, props) {\n // see https://w3c.github.io/html-aria/#el-img\n const label = attributes['aria-label'] || attributes.alt;\n if (label && (!props?.view || props.view.accessibilityRole !== 'none')) {\n return {\n native: {\n accessibilityLabel: label,\n accessibilityRole: 'image'\n }\n };\n }\n return {\n native: {\n accessibilityRole: 'none'\n }\n };\n }\n }).extend({\n contentModel: HTMLContentModel.block\n }),\n picture: HTMLElementModel.fromNativeModel({\n tagName: 'picture',\n category: 'embedded',\n isOpaque: false,\n isVoid: false // allows source and img\n }).extend({\n contentModel: HTMLContentModel.block\n })\n};\n\n// Embedded elements content model is \"none\" by default.\nconst emptyEmbeddedModelMap: HTMLModelRecord<\n Exclude,\n HTMLContentModel.none\n> = {\n audio: HTMLElementModel.fromNativeModel({\n tagName: 'audio',\n category: 'embedded',\n isVoid: false // allows tracks\n }),\n canvas: HTMLElementModel.fromNativeModel({\n tagName: 'canvas',\n category: 'embedded',\n isVoid: false // allows specific content\n }),\n embed: HTMLElementModel.fromNativeModel({\n tagName: 'embed',\n category: 'embedded',\n isVoid: true\n }),\n iframe: HTMLElementModel.fromNativeModel({\n tagName: 'iframe',\n category: 'embedded',\n isVoid: true\n }),\n math: HTMLElementModel.fromNativeModel({\n tagName: 'math',\n category: 'embedded',\n isVoid: false, // allows mathml elems\n isOpaque: true\n }),\n object: HTMLElementModel.fromNativeModel({\n tagName: 'object',\n category: 'embedded',\n isVoid: false // allows params\n }),\n svg: HTMLElementModel.fromNativeModel({\n tagName: 'svg',\n category: 'embedded',\n isVoid: false, // allows svg elems\n isOpaque: true,\n getReactNativeProps({ attributes }) {\n if (attributes['aria-label']) {\n return {\n native: {\n accessibilityLabel: attributes['aria-label'],\n accessibilityRole: 'image'\n }\n };\n }\n return {\n native: {\n accessibilityRole: 'none'\n }\n };\n }\n }),\n video: HTMLElementModel.fromNativeModel({\n tagName: 'video',\n category: 'embedded',\n isVoid: false // allows source, tracks + transparent\n })\n};\n\nconst editsModelMap: HTMLModelRecord = {\n ins: HTMLElementModel.fromNativeModel({\n tagName: 'ins',\n category: 'edits',\n mixedUAStyles: solidUnderlineStyle,\n setMarkersForTNode(targetMarkers) {\n targetMarkers.edits = 'ins';\n }\n }),\n del: HTMLElementModel.fromNativeModel({\n tagName: 'del',\n category: 'edits',\n mixedUAStyles: lineThroughStyle,\n setMarkersForTNode(targetMarkers) {\n targetMarkers.edits = 'del';\n }\n })\n};\n\nconst textLevelModelMap: HTMLModelRecord<\n TextLevelTagNames,\n HTMLContentModel.textual\n> = {\n em: HTMLElementModel.fromNativeModel({\n tagName: 'em',\n category: 'textual',\n mixedUAStyles: italicStyle\n }),\n strong: HTMLElementModel.fromNativeModel({\n tagName: 'strong',\n category: 'textual',\n mixedUAStyles: boldStyle\n }),\n small: HTMLElementModel.fromNativeModel({\n tagName: 'small',\n category: 'textual',\n mixedUAStyles: {\n fontSize: 'smaller'\n }\n }),\n big: HTMLElementModel.fromNativeModel({\n tagName: 'big',\n category: 'textual',\n mixedUAStyles: {\n fontSize: 'larger'\n }\n }),\n s: HTMLElementModel.fromNativeModel({\n tagName: 's',\n category: 'textual',\n mixedUAStyles: lineThroughStyle\n }),\n strike: HTMLElementModel.fromNativeModel({\n tagName: 'strike',\n category: 'textual',\n mixedUAStyles: lineThroughStyle\n }),\n cite: HTMLElementModel.fromNativeModel({\n tagName: 'cite',\n category: 'textual',\n mixedUAStyles: italicStyle\n }),\n q: HTMLElementModel.fromNativeModel({\n tagName: 'q',\n category: 'textual'\n // default style, content: \"open,close-quote\"\n }),\n dfn: HTMLElementModel.fromNativeModel({\n tagName: 'dfn',\n category: 'textual',\n mixedUAStyles: italicStyle\n }),\n abbr: HTMLElementModel.fromNativeModel({\n tagName: 'abbr',\n category: 'textual',\n mixedUAStyles: dottedUnderlineStyle\n }),\n acronym: HTMLElementModel.fromNativeModel({\n tagName: 'acronym',\n category: 'textual',\n mixedUAStyles: dottedUnderlineStyle\n }),\n ruby: HTMLElementModel.fromNativeModel({\n tagName: 'ruby',\n category: 'textual'\n }),\n rt: HTMLElementModel.fromNativeModel({\n tagName: 'rt',\n category: 'textual'\n }),\n rp: HTMLElementModel.fromNativeModel({\n tagName: 'rp',\n category: 'textual'\n }),\n data: HTMLElementModel.fromNativeModel({\n tagName: 'data',\n category: 'textual'\n }),\n time: HTMLElementModel.fromNativeModel({\n tagName: 'time',\n category: 'textual'\n }),\n code: HTMLElementModel.fromNativeModel({\n tagName: 'code',\n category: 'textual',\n mixedUAStyles: monoStyle\n }),\n tt: HTMLElementModel.fromNativeModel({\n tagName: 'tt',\n category: 'textual',\n mixedUAStyles: monoStyle\n }),\n var: HTMLElementModel.fromNativeModel({\n tagName: 'var',\n category: 'textual',\n mixedUAStyles: italicStyle\n }),\n samp: HTMLElementModel.fromNativeModel({\n tagName: 'samp',\n category: 'textual',\n mixedUAStyles: monoStyle\n }),\n kbd: HTMLElementModel.fromNativeModel({\n tagName: 'kbd',\n category: 'textual',\n mixedUAStyles: monoStyle\n }),\n sub: HTMLElementModel.fromNativeModel({\n tagName: 'sub',\n category: 'textual',\n mixedUAStyles: {\n textAlignVertical: 'bottom',\n fontSize: 'smaller'\n }\n }),\n sup: HTMLElementModel.fromNativeModel({\n tagName: 'sup',\n category: 'textual',\n mixedUAStyles: {\n textAlignVertical: 'top',\n fontSize: 'smaller'\n }\n }),\n i: HTMLElementModel.fromNativeModel({\n tagName: 'i',\n category: 'textual',\n mixedUAStyles: italicStyle\n }),\n b: HTMLElementModel.fromNativeModel({\n tagName: 'b',\n category: 'textual',\n mixedUAStyles: boldStyle\n }),\n u: HTMLElementModel.fromNativeModel({\n tagName: 'u',\n category: 'textual',\n mixedUAStyles: solidUnderlineStyle\n }),\n mark: HTMLElementModel.fromNativeModel({\n tagName: 'mark',\n category: 'textual',\n mixedUAStyles: {\n backgroundColor: 'yellow',\n color: 'black'\n }\n }),\n bdi: HTMLElementModel.fromNativeModel({\n tagName: 'bdi',\n category: 'textual'\n // unicode-bidi: isolate;\n }),\n bdo: HTMLElementModel.fromNativeModel({\n tagName: 'bdo',\n category: 'textual'\n // unicode-bidi: isolate-override;\n }),\n span: HTMLElementModel.fromNativeModel({\n tagName: 'span',\n category: 'textual'\n }),\n br: HTMLElementModel.fromNativeModel({\n tagName: 'br',\n category: 'textual',\n isVoid: true\n }),\n wbr: HTMLElementModel.fromNativeModel({\n tagName: 'wbr',\n category: 'textual',\n isVoid: true\n })\n};\n\nconst defaultHTMLElementModels = {\n a: HTMLElementModel.fromNativeModel({\n tagName: 'a',\n category: 'anchor',\n getMixedUAStyles: ({ attributes }) => {\n if (typeof attributes.href === 'string') {\n return anchorStyle;\n }\n },\n getReactNativeProps: getReactNativePropsWithHref,\n setMarkersForTNode(targetMarkers) {\n targetMarkers.anchor = true;\n }\n }),\n ...textLevelModelMap,\n ...editsModelMap,\n ...renderedEmbeddedModelMap,\n ...emptyEmbeddedModelMap,\n ...tabularModelMap,\n ...groupingModelMap,\n ...sectioningModelMap,\n ...interactiveModelMap,\n ...untranslatableModelMap\n};\n\nexport type DefaultHTMLElementModelsStatic = typeof defaultHTMLElementModels;\n\nexport default defaultHTMLElementModels;\n","/**\n * Default system fonts based on current platform.\n *\n * @remarks If you are using Expo, use `Constants.systemFonts` instead.\n */\nconst defaultSystemFonts = ['Arial', 'Courier New', 'Georgia'];\nexport default defaultSystemFonts;\n","import React, { PropsWithChildren, ReactElement, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport RenderersPropsProvider from './context/RenderersPropsProvider';\nimport SharedPropsProvider from './context/SharedPropsProvider';\nimport TChildrenRenderersContext from './context/TChildrenRendererContext';\nimport { RenderHTMLConfig } from './shared-types';\nimport TNodeChildrenRenderer from './TNodeChildrenRenderer';\nimport TChildrenRenderer from './TChildrenRenderer';\nimport sourceLoaderContext, {\n defaultRenderError,\n defaultRenderLoading\n} from './context/sourceLoaderContext';\nimport RenderRegistryProvider from './context/RenderRegistryProvider';\nimport { useAmbientTRenderEngine } from './TRenderEngineProvider';\nimport useProfiler from './hooks/useProfiler';\nimport ListStyleSpecsProvider from './context/ListStyleSpecsProvider';\n\nconst childrenRendererContext = {\n TChildrenRenderer,\n TNodeChildrenRenderer\n};\n\nexport type RenderHTMLConfigPropTypes = Record;\n\nexport const renderHTMLConfigPropTypes: RenderHTMLConfigPropTypes = {\n bypassAnonymousTPhrasingNodes: PropTypes.bool,\n defaultTextProps: PropTypes.object,\n defaultViewProps: PropTypes.object,\n enableExperimentalBRCollapsing: PropTypes.bool,\n enableExperimentalGhostLinesPrevention: PropTypes.bool,\n enableExperimentalMarginCollapsing: PropTypes.bool,\n remoteErrorView: PropTypes.func,\n remoteLoadingView: PropTypes.func,\n debug: PropTypes.bool,\n computeEmbeddedMaxWidth: PropTypes.func,\n renderersProps: PropTypes.object,\n WebView: PropTypes.any,\n GenericPressable: PropTypes.any,\n defaultWebViewProps: PropTypes.object,\n pressableHightlightColor: PropTypes.string,\n customListStyleSpecs: PropTypes.object,\n renderers: PropTypes.object,\n provideEmbeddedHeaders: PropTypes.func\n};\n\n/**\n * A component to provide configuration for {@link RenderHTMLSource}\n * descendants, to be used in conjunction with {@link TRenderEngineProvider}.\n */\nexport default function RenderHTMLConfigProvider(\n props: PropsWithChildren\n): ReactElement {\n const {\n remoteErrorView,\n remoteLoadingView,\n renderersProps,\n children,\n renderers,\n ...sharedProps\n } = props;\n const engine = useAmbientTRenderEngine();\n const profile = useProfiler({ prop: 'remoteErrorView or remoteLoadingView' });\n const sourceLoaderConfig = useMemo(() => {\n typeof __DEV__ === 'boolean' && __DEV__ && profile();\n return {\n remoteErrorView: remoteErrorView || defaultRenderError,\n remoteLoadingView: remoteLoadingView || defaultRenderLoading\n };\n }, [remoteErrorView, remoteLoadingView, profile]);\n return (\n \n \n \n \n \n \n {children}\n \n \n \n \n \n \n );\n}\n\n/**\n * @ignore\n */\nRenderHTMLConfigProvider.propTypes = renderHTMLConfigPropTypes;\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","export default function makeAlphanumMaxlenComputer(base, alpha) {\n return function alphanumericMaxLenComputer(_min, max) {\n let remax = max - Number(alpha);\n let digits = 1;\n while (remax >= base) {\n remax /= base;\n digits++;\n }\n return digits;\n };\n}\n//# sourceMappingURL=makeAlphanumMaxlenComputer.js.map","import CounterStyle from '../CounterStyle';\nimport makeAlphanumMaxlenComputer from '../makeAlphanumMaxlenComputer';\n// Default implementation is faster than invoking CounterStyle.numeric\nconst decimal = CounterStyle.raw((index) => index.toString())\n .withMaxLengthComputer(makeAlphanumMaxlenComputer(10, false))\n .withNegative('-');\nexport default decimal;\n//# sourceMappingURL=decimal.js.map","import { DEFAULT_PRESSABLE_RIPPLE_COLOR } from '../constants';\nimport { RenderHTMLAmbiantSharedProps } from '../shared-types';\n\nfunction WebViewPlaceholder() {\n /* istanbul ignore else */\n if (typeof __DEV__ === 'boolean' && __DEV__) {\n console.warn(\n 'One of your renderers is attempting to use WebView component, which has not been ' +\n \"provided as a prop to the RenderHtml component. As a consequence, the element won't be rendered.\"\n );\n }\n return null;\n}\n\nconst defaultSharedProps: RenderHTMLAmbiantSharedProps = {\n bypassAnonymousTPhrasingNodes: true,\n debug: false,\n defaultTextProps: {\n selectable: false,\n allowFontScaling: true\n },\n defaultViewProps: {},\n enableExperimentalBRCollapsing: false,\n enableExperimentalGhostLinesPrevention: false,\n enableExperimentalMarginCollapsing: false,\n computeEmbeddedMaxWidth: (contentWidth) => contentWidth,\n WebView: WebViewPlaceholder,\n defaultWebViewProps: {},\n pressableHightlightColor: DEFAULT_PRESSABLE_RIPPLE_COLOR,\n provideEmbeddedHeaders: undefined,\n GenericPressable: undefined,\n customListStyleSpecs: undefined\n};\n\nexport default defaultSharedProps;\n","const DEFAULT_TEXT_COLOR = 'black';\nconst DEFAULT_PRESSABLE_RIPPLE_COLOR = 'rgba(38, 132, 240, 0.2)';\n\nconst constants = {\n DEFAULT_PRESSABLE_RIPPLE_COLOR,\n DEFAULT_TEXT_COLOR\n};\n\nexport { DEFAULT_TEXT_COLOR, DEFAULT_PRESSABLE_RIPPLE_COLOR };\n\nexport default constants;\n","import { ReactElement } from 'react';\nimport { TNode } from '@native-html/transient-render-engine';\nimport { useSharedProps } from './context/SharedPropsProvider';\nimport { tchildrenRendererDefaultProps } from './TChildrenRenderer';\nimport {\n TChildrenRendererProps,\n TNodeChildrenRendererProps\n} from './shared-types';\nimport renderChildren from './renderChildren';\n\nfunction isCollapsible(tnode: TNode) {\n return tnode.type === 'block' || tnode.type === 'phrasing';\n}\n\n/**\n * A hook especially useful when one need to tamper with children in a custom\n * renderer. Should be used with {@link TChildrenRenderer}.\n *\n * @example\n * For example, a custom renderer which inserts ads in an article:\n *\n * ```tsx\n * function ArticleRenderer(props) {\n * const { tnode, TDefaultRenderer, ...defaultRendererProps } = props;\n * const tchildrenProps = useTNodeChildrenProps(props);\n * const firstChildrenChunk = tnode.children.slice(0, 2);\n * const secondChildrenChunk = tnode.children.slice(2, 4);\n * const thirdChildrenChunk = tnode.children.slice(4, 5);\n * return (\n * \n * \n * {firstChildrenChunk.length === 2 ? : null}\n * \n * {secondChildrenChunk.length === 2 ? : null}\n * \n * \n * );\n * };\n * ```\n */\nexport function useTNodeChildrenProps({\n tnode,\n propsForChildren,\n disableMarginCollapsing = false,\n renderChild\n}: TNodeChildrenRendererProps): TChildrenRendererProps {\n const { enableExperimentalMarginCollapsing } = useSharedProps();\n const shouldCollapseChildren =\n enableExperimentalMarginCollapsing &&\n !disableMarginCollapsing &&\n isCollapsible(tnode);\n return {\n propsForChildren,\n disableMarginCollapsing: !shouldCollapseChildren,\n tchildren: tnode.children,\n renderChild\n };\n}\n\n/**\n * A component to render all children of a {@link TNode}.\n */\nfunction TNodeChildrenRenderer(\n props: TNodeChildrenRendererProps\n): ReactElement {\n if (props.tnode.type === 'text') {\n // see https://github.com/DefinitelyTyped/DefinitelyTyped/issues/20544\n return props.tnode.data as unknown as ReactElement;\n }\n // A tnode type will never change. We can safely\n // ignore the non-conditional rule of hooks.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return renderChildren(useTNodeChildrenProps(props));\n}\n\n/**\n * @ignore\n */\nTNodeChildrenRenderer.defaultProps = tchildrenRendererDefaultProps;\n\nexport default TNodeChildrenRenderer;\n","import React, { ReactElement } from 'react';\nimport { TNode } from '@native-html/transient-render-engine';\nimport TNodeRenderer from './TNodeRenderer';\nimport { TChildrenRendererProps } from './shared-types';\nimport collapseTopMarginForChild from './helpers/collapseTopMarginForChild';\n\nconst empty = {};\n\nconst mapCollapsibleChildren = (\n propsForChildren: TChildrenRendererProps['propsForChildren'],\n renderChild: TChildrenRendererProps['renderChild'],\n disableMarginCollapsing: boolean | undefined,\n childTnode: TNode,\n n: number,\n tchildren: readonly TNode[]\n) => {\n const collapsedMarginTop = disableMarginCollapsing\n ? null\n : collapseTopMarginForChild(n, tchildren);\n const propsFromParent = { ...propsForChildren, collapsedMarginTop };\n const key = childTnode.nodeIndex;\n const childElement = React.createElement(TNodeRenderer, {\n propsFromParent,\n tnode: childTnode,\n key,\n renderIndex: n,\n renderLength: tchildren.length\n });\n return typeof renderChild === 'function'\n ? renderChild({\n key,\n childElement,\n index: n,\n childTnode,\n propsFromParent\n })\n : childElement;\n};\n\nexport default function renderChildren({\n tchildren,\n propsForChildren = empty,\n disableMarginCollapsing,\n renderChild\n}: TChildrenRendererProps): ReactElement {\n const elements = tchildren.map(\n mapCollapsibleChildren.bind(\n null,\n propsForChildren,\n renderChild,\n disableMarginCollapsing\n )\n );\n return <>{elements};\n}\n","import React from 'react';\nimport { InternalMixedRenderer } from '../render/render-types';\nimport { TNode, DocumentContext } from '@native-html/transient-render-engine';\nimport { InternalRendererProps, RenderersProps } from '../shared-types';\nimport { GestureResponderEvent } from 'react-native';\nimport useNormalizedUrl from '../hooks/useNormalizedUrl';\nimport { useDocumentMetadata } from '../context/DocumentMetadataProvider';\nimport { useRendererProps } from '../context/RenderersPropsProvider';\n\nfunction useAnchorOnLinkPress(\n tnode: TNode,\n onPress: RenderersProps['a']['onPress']\n) {\n const href: string = tnode.attributes.href;\n const normalizedHref = useNormalizedUrl(href);\n const { baseTarget } = useDocumentMetadata();\n const shouldHandleLinkPress =\n tnode.tagName === 'a' &&\n typeof normalizedHref === 'string' &&\n href.length > 0 &&\n typeof onPress === 'function';\n return shouldHandleLinkPress\n ? (e: GestureResponderEvent) =>\n onPress!(\n e,\n normalizedHref,\n tnode.attributes,\n (tnode.attributes.target as DocumentContext['baseTarget']) ||\n baseTarget\n )\n : undefined;\n}\n\nexport function useAElementProps(\n props: InternalRendererProps\n): InternalRendererProps {\n const { tnode } = props;\n const { onPress } = useRendererProps('a');\n const syntheticAnchorOnLinkPress = useAnchorOnLinkPress(tnode, onPress);\n if (typeof syntheticAnchorOnLinkPress !== 'function') {\n return props;\n }\n return {\n ...props,\n onPress: syntheticAnchorOnLinkPress\n };\n}\n\nconst ARenderer: InternalMixedRenderer = (props) => {\n return React.createElement(props.TDefaultRenderer, useAElementProps(props));\n};\n\nexport default ARenderer;\n","/*! https://mths.be/punycode v1.4.0 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","/*!\n * URI.js - Mutating URLs\n * IPv6 Support\n *\n * Version: 1.19.11\n *\n * Author: Rodney Rehm\n * Web: http://medialize.github.io/URI.js/\n *\n * Licensed under\n * MIT License http://www.opensource.org/licenses/mit-license\n *\n */\n\n(function (root, factory) {\n 'use strict';\n // https://github.com/umdjs/umd/blob/master/returnExports.js\n if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else {\n // Browser globals (root is window)\n root.IPv6 = factory(root);\n }\n}(this, function (root) {\n 'use strict';\n\n /*\n var _in = \"fe80:0000:0000:0000:0204:61ff:fe9d:f156\";\n var _out = IPv6.best(_in);\n var _expected = \"fe80::204:61ff:fe9d:f156\";\n\n console.log(_in, _out, _expected, _out === _expected);\n */\n\n // save current IPv6 variable, if any\n var _IPv6 = root && root.IPv6;\n\n function bestPresentation(address) {\n // based on:\n // Javascript to test an IPv6 address for proper format, and to\n // present the \"best text representation\" according to IETF Draft RFC at\n // http://tools.ietf.org/html/draft-ietf-6man-text-addr-representation-04\n // 8 Feb 2010 Rich Brown, Dartware, LLC\n // Please feel free to use this code as long as you provide a link to\n // http://www.intermapper.com\n // http://intermapper.com/support/tools/IPV6-Validator.aspx\n // http://download.dartware.com/thirdparty/ipv6validator.js\n\n var _address = address.toLowerCase();\n var segments = _address.split(':');\n var length = segments.length;\n var total = 8;\n\n // trim colons (:: or ::a:b:c… or …a:b:c::)\n if (segments[0] === '' && segments[1] === '' && segments[2] === '') {\n // must have been ::\n // remove first two items\n segments.shift();\n segments.shift();\n } else if (segments[0] === '' && segments[1] === '') {\n // must have been ::xxxx\n // remove the first item\n segments.shift();\n } else if (segments[length - 1] === '' && segments[length - 2] === '') {\n // must have been xxxx::\n segments.pop();\n }\n\n length = segments.length;\n\n // adjust total segments for IPv4 trailer\n if (segments[length - 1].indexOf('.') !== -1) {\n // found a \".\" which means IPv4\n total = 7;\n }\n\n // fill empty segments them with \"0000\"\n var pos;\n for (pos = 0; pos < length; pos++) {\n if (segments[pos] === '') {\n break;\n }\n }\n\n if (pos < total) {\n segments.splice(pos, 1, '0000');\n while (segments.length < total) {\n segments.splice(pos, 0, '0000');\n }\n }\n\n // strip leading zeros\n var _segments;\n for (var i = 0; i < total; i++) {\n _segments = segments[i].split('');\n for (var j = 0; j < 3 ; j++) {\n if (_segments[0] === '0' && _segments.length > 1) {\n _segments.splice(0,1);\n } else {\n break;\n }\n }\n\n segments[i] = _segments.join('');\n }\n\n // find longest sequence of zeroes and coalesce them into one segment\n var best = -1;\n var _best = 0;\n var _current = 0;\n var current = -1;\n var inzeroes = false;\n // i; already declared\n\n for (i = 0; i < total; i++) {\n if (inzeroes) {\n if (segments[i] === '0') {\n _current += 1;\n } else {\n inzeroes = false;\n if (_current > _best) {\n best = current;\n _best = _current;\n }\n }\n } else {\n if (segments[i] === '0') {\n inzeroes = true;\n current = i;\n _current = 1;\n }\n }\n }\n\n if (_current > _best) {\n best = current;\n _best = _current;\n }\n\n if (_best > 1) {\n segments.splice(best, _best, '');\n }\n\n length = segments.length;\n\n // assemble remaining segments\n var result = '';\n if (segments[0] === '') {\n result = ':';\n }\n\n for (i = 0; i < length; i++) {\n result += segments[i];\n if (i === length - 1) {\n break;\n }\n\n result += ':';\n }\n\n if (segments[length - 1] === '') {\n result += ':';\n }\n\n return result;\n }\n\n function noConflict() {\n /*jshint validthis: true */\n if (root.IPv6 === this) {\n root.IPv6 = _IPv6;\n }\n\n return this;\n }\n\n return {\n best: bestPresentation,\n noConflict: noConflict\n };\n}));\n","/*!\n * URI.js - Mutating URLs\n * Second Level Domain (SLD) Support\n *\n * Version: 1.19.11\n *\n * Author: Rodney Rehm\n * Web: http://medialize.github.io/URI.js/\n *\n * Licensed under\n * MIT License http://www.opensource.org/licenses/mit-license\n *\n */\n\n(function (root, factory) {\n 'use strict';\n // https://github.com/umdjs/umd/blob/master/returnExports.js\n if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = factory();\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory);\n } else {\n // Browser globals (root is window)\n root.SecondLevelDomains = factory(root);\n }\n}(this, function (root) {\n 'use strict';\n\n // save current SecondLevelDomains variable, if any\n var _SecondLevelDomains = root && root.SecondLevelDomains;\n\n var SLD = {\n // list of known Second Level Domains\n // converted list of SLDs from https://github.com/gavingmiller/second-level-domains\n // ----\n // publicsuffix.org is more current and actually used by a couple of browsers internally.\n // downside is it also contains domains like \"dyndns.org\" - which is fine for the security\n // issues browser have to deal with (SOP for cookies, etc) - but is way overboard for URI.js\n // ----\n list: {\n 'ac':' com gov mil net org ',\n 'ae':' ac co gov mil name net org pro sch ',\n 'af':' com edu gov net org ',\n 'al':' com edu gov mil net org ',\n 'ao':' co ed gv it og pb ',\n 'ar':' com edu gob gov int mil net org tur ',\n 'at':' ac co gv or ',\n 'au':' asn com csiro edu gov id net org ',\n 'ba':' co com edu gov mil net org rs unbi unmo unsa untz unze ',\n 'bb':' biz co com edu gov info net org store tv ',\n 'bh':' biz cc com edu gov info net org ',\n 'bn':' com edu gov net org ',\n 'bo':' com edu gob gov int mil net org tv ',\n 'br':' adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ',\n 'bs':' com edu gov net org ',\n 'bz':' du et om ov rg ',\n 'ca':' ab bc mb nb nf nl ns nt nu on pe qc sk yk ',\n 'ck':' biz co edu gen gov info net org ',\n 'cn':' ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ',\n 'co':' com edu gov mil net nom org ',\n 'cr':' ac c co ed fi go or sa ',\n 'cy':' ac biz com ekloges gov ltd name net org parliament press pro tm ',\n 'do':' art com edu gob gov mil net org sld web ',\n 'dz':' art asso com edu gov net org pol ',\n 'ec':' com edu fin gov info med mil net org pro ',\n 'eg':' com edu eun gov mil name net org sci ',\n 'er':' com edu gov ind mil net org rochest w ',\n 'es':' com edu gob nom org ',\n 'et':' biz com edu gov info name net org ',\n 'fj':' ac biz com info mil name net org pro ',\n 'fk':' ac co gov net nom org ',\n 'fr':' asso com f gouv nom prd presse tm ',\n 'gg':' co net org ',\n 'gh':' com edu gov mil org ',\n 'gn':' ac com gov net org ',\n 'gr':' com edu gov mil net org ',\n 'gt':' com edu gob ind mil net org ',\n 'gu':' com edu gov net org ',\n 'hk':' com edu gov idv net org ',\n 'hu':' 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ',\n 'id':' ac co go mil net or sch web ',\n 'il':' ac co gov idf k12 muni net org ',\n 'in':' ac co edu ernet firm gen gov i ind mil net nic org res ',\n 'iq':' com edu gov i mil net org ',\n 'ir':' ac co dnssec gov i id net org sch ',\n 'it':' edu gov ',\n 'je':' co net org ',\n 'jo':' com edu gov mil name net org sch ',\n 'jp':' ac ad co ed go gr lg ne or ',\n 'ke':' ac co go info me mobi ne or sc ',\n 'kh':' com edu gov mil net org per ',\n 'ki':' biz com de edu gov info mob net org tel ',\n 'km':' asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ',\n 'kn':' edu gov net org ',\n 'kr':' ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ',\n 'kw':' com edu gov net org ',\n 'ky':' com edu gov net org ',\n 'kz':' com edu gov mil net org ',\n 'lb':' com edu gov net org ',\n 'lk':' assn com edu gov grp hotel int ltd net ngo org sch soc web ',\n 'lr':' com edu gov net org ',\n 'lv':' asn com conf edu gov id mil net org ',\n 'ly':' com edu gov id med net org plc sch ',\n 'ma':' ac co gov m net org press ',\n 'mc':' asso tm ',\n 'me':' ac co edu gov its net org priv ',\n 'mg':' com edu gov mil nom org prd tm ',\n 'mk':' com edu gov inf name net org pro ',\n 'ml':' com edu gov net org presse ',\n 'mn':' edu gov org ',\n 'mo':' com edu gov net org ',\n 'mt':' com edu gov net org ',\n 'mv':' aero biz com coop edu gov info int mil museum name net org pro ',\n 'mw':' ac co com coop edu gov int museum net org ',\n 'mx':' com edu gob net org ',\n 'my':' com edu gov mil name net org sch ',\n 'nf':' arts com firm info net other per rec store web ',\n 'ng':' biz com edu gov mil mobi name net org sch ',\n 'ni':' ac co com edu gob mil net nom org ',\n 'np':' com edu gov mil net org ',\n 'nr':' biz com edu gov info net org ',\n 'om':' ac biz co com edu gov med mil museum net org pro sch ',\n 'pe':' com edu gob mil net nom org sld ',\n 'ph':' com edu gov i mil net ngo org ',\n 'pk':' biz com edu fam gob gok gon gop gos gov net org web ',\n 'pl':' art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ',\n 'pr':' ac biz com edu est gov info isla name net org pro prof ',\n 'ps':' com edu gov net org plo sec ',\n 'pw':' belau co ed go ne or ',\n 'ro':' arts com firm info nom nt org rec store tm www ',\n 'rs':' ac co edu gov in org ',\n 'sb':' com edu gov net org ',\n 'sc':' com edu gov net org ',\n 'sh':' co com edu gov net nom org ',\n 'sl':' com edu gov net org ',\n 'st':' co com consulado edu embaixada gov mil net org principe saotome store ',\n 'sv':' com edu gob org red ',\n 'sz':' ac co org ',\n 'tr':' av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ',\n 'tt':' aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ',\n 'tw':' club com ebiz edu game gov idv mil net org ',\n 'mu':' ac co com gov net or org ',\n 'mz':' ac co edu gov org ',\n 'na':' co com ',\n 'nz':' ac co cri geek gen govt health iwi maori mil net org parliament school ',\n 'pa':' abo ac com edu gob ing med net nom org sld ',\n 'pt':' com edu gov int net nome org publ ',\n 'py':' com edu gov mil net org ',\n 'qa':' com edu gov mil net org ',\n 're':' asso com nom ',\n 'ru':' ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ',\n 'rw':' ac co com edu gouv gov int mil net ',\n 'sa':' com edu gov med net org pub sch ',\n 'sd':' com edu gov info med net org tv ',\n 'se':' a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ',\n 'sg':' com edu gov idn net org per ',\n 'sn':' art com edu gouv org perso univ ',\n 'sy':' com edu gov mil net news org ',\n 'th':' ac co go in mi net or ',\n 'tj':' ac biz co com edu go gov info int mil name net nic org test web ',\n 'tn':' agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ',\n 'tz':' ac co go ne or ',\n 'ua':' biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ',\n 'ug':' ac co go ne or org sc ',\n 'uk':' ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ',\n 'us':' dni fed isa kids nsn ',\n 'uy':' com edu gub mil net org ',\n 've':' co com edu gob info mil net org web ',\n 'vi':' co com k12 net org ',\n 'vn':' ac biz com edu gov health info int name net org pro ',\n 'ye':' co com gov ltd me net org plc ',\n 'yu':' ac co edu gov org ',\n 'za':' ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ',\n 'zm':' ac co com edu gov net org sch ',\n // https://en.wikipedia.org/wiki/CentralNic#Second-level_domains\n 'com': 'ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ',\n 'net': 'gb jp se uk ',\n 'org': 'ae',\n 'de': 'com '\n },\n // gorhill 2013-10-25: Using indexOf() instead Regexp(). Significant boost\n // in both performance and memory footprint. No initialization required.\n // http://jsperf.com/uri-js-sld-regex-vs-binary-search/4\n // Following methods use lastIndexOf() rather than array.split() in order\n // to avoid any memory allocations.\n has: function(domain) {\n var tldOffset = domain.lastIndexOf('.');\n if (tldOffset <= 0 || tldOffset >= (domain.length-1)) {\n return false;\n }\n var sldOffset = domain.lastIndexOf('.', tldOffset-1);\n if (sldOffset <= 0 || sldOffset >= (tldOffset-1)) {\n return false;\n }\n var sldList = SLD.list[domain.slice(tldOffset+1)];\n if (!sldList) {\n return false;\n }\n return sldList.indexOf(' ' + domain.slice(sldOffset+1, tldOffset) + ' ') >= 0;\n },\n is: function(domain) {\n var tldOffset = domain.lastIndexOf('.');\n if (tldOffset <= 0 || tldOffset >= (domain.length-1)) {\n return false;\n }\n var sldOffset = domain.lastIndexOf('.', tldOffset-1);\n if (sldOffset >= 0) {\n return false;\n }\n var sldList = SLD.list[domain.slice(tldOffset+1)];\n if (!sldList) {\n return false;\n }\n return sldList.indexOf(' ' + domain.slice(0, tldOffset) + ' ') >= 0;\n },\n get: function(domain) {\n var tldOffset = domain.lastIndexOf('.');\n if (tldOffset <= 0 || tldOffset >= (domain.length-1)) {\n return null;\n }\n var sldOffset = domain.lastIndexOf('.', tldOffset-1);\n if (sldOffset <= 0 || sldOffset >= (tldOffset-1)) {\n return null;\n }\n var sldList = SLD.list[domain.slice(tldOffset+1)];\n if (!sldList) {\n return null;\n }\n if (sldList.indexOf(' ' + domain.slice(sldOffset+1, tldOffset) + ' ') < 0) {\n return null;\n }\n return domain.slice(sldOffset+1);\n },\n noConflict: function(){\n if (root.SecondLevelDomains === this) {\n root.SecondLevelDomains = _SecondLevelDomains;\n }\n return this;\n }\n };\n\n return SLD;\n}));\n","import { useEffect, useState } from 'react';\nimport { Image, ImageURISource } from 'react-native';\nimport {\n UseIMGElementStateProps,\n IMGElementState,\n IncompleteImageDimensions\n} from './img-types';\nimport defaultImageInitialDimensions from './defaultInitialImageDimensions';\nimport useIMGNormalizedSource from './useIMGNormalizedSource';\nimport { ImageDimensions } from '../shared-types';\nimport useImageConcreteDimensions from './useImageConcreteDimensions';\nimport { getIMGState } from './getIMGState';\nimport useImageSpecifiedDimensions from './useImageSpecifiedDimensions';\n\nfunction getImageSizeAsync({\n uri,\n headers\n}: {\n headers: any;\n uri: string;\n}): Promise {\n return new Promise((onsuccess, onerror) => {\n const onImageDimensionsSuccess = (width: number, height: number) =>\n onsuccess({ width, height });\n if (headers) {\n Image.getSizeWithHeaders(uri, headers, onImageDimensionsSuccess, onerror);\n } else {\n Image.getSize(uri, onImageDimensionsSuccess, onerror);\n }\n });\n}\n\nfunction useImageNaturalDimensions

(props: {\n cachedNaturalDimensions?: ImageDimensions;\n source: ImageURISource;\n specifiedDimensions: IncompleteImageDimensions;\n}) {\n const { source, cachedNaturalDimensions } = props;\n const [naturalDimensions, setNaturalDimensions] = useState<\n P['cachedNaturalDimensions'] extends ImageDimensions\n ? ImageDimensions\n : ImageDimensions | null\n >((cachedNaturalDimensions as any) || null);\n const { width: cachedNaturalWidth, height: cachedNaturalHeight } =\n cachedNaturalDimensions || {};\n const [error, setError] = useState(null);\n useEffect(\n function resetOnURIChange() {\n setNaturalDimensions(\n (cachedNaturalWidth != null && cachedNaturalHeight != null\n ? { width: cachedNaturalWidth, height: cachedNaturalHeight }\n : null) as any\n );\n setError(null);\n },\n [cachedNaturalHeight, cachedNaturalWidth, source.uri]\n );\n return {\n onNaturalDimensions: setNaturalDimensions,\n onError: setError,\n naturalDimensions,\n error\n };\n}\n\nfunction useFetchedNaturalDimensions(props: {\n cachedNaturalDimensions?: ImageDimensions;\n source: ImageURISource;\n specifiedDimensions: IncompleteImageDimensions;\n}) {\n const { source, cachedNaturalDimensions } = props;\n const { error, naturalDimensions, onError, onNaturalDimensions } =\n useImageNaturalDimensions(props);\n const hasCachedDimensions = !!cachedNaturalDimensions;\n useEffect(\n function fetchPhysicalDimensions() {\n let cancelled = false;\n if (source.uri && !hasCachedDimensions) {\n getImageSizeAsync({ uri: source.uri, headers: source.headers })\n .then((dimensions) => !cancelled && onNaturalDimensions(dimensions))\n .catch((e) => !cancelled && onError(e || {}));\n return () => {\n cancelled = true;\n };\n }\n },\n [\n source.uri,\n source.headers,\n onNaturalDimensions,\n onError,\n hasCachedDimensions\n ]\n );\n return {\n naturalDimensions,\n error,\n onError,\n onNaturalDimensions\n };\n}\n\n/**\n * This hook will compute concrete dimensions from image natural dimensions and\n * constraints. It will fetch the image and get its dimensions.\n *\n * @remarks If you know the dimensions beforehand, use\n * {@link useIMGElementStateWithCache} instead to save a network request and\n * prevent a layout shift.\n */\nexport default function useIMGElementState(\n props: UseIMGElementStateProps\n): IMGElementState {\n const {\n alt,\n altColor,\n source,\n contentWidth,\n computeMaxWidth,\n objectFit,\n initialDimensions = defaultImageInitialDimensions,\n cachedNaturalDimensions\n } = props;\n const { flatStyle, specifiedDimensions } = useImageSpecifiedDimensions(props);\n const nomalizedSource = useIMGNormalizedSource({\n specifiedDimensions,\n source\n });\n const { naturalDimensions, onError, error } = useFetchedNaturalDimensions({\n source: nomalizedSource,\n specifiedDimensions,\n cachedNaturalDimensions\n });\n const concreteDimensions = useImageConcreteDimensions({\n flatStyle,\n naturalDimensions,\n specifiedDimensions,\n computeMaxWidth,\n contentWidth\n });\n\n return getIMGState({\n error,\n alt,\n altColor,\n concreteDimensions,\n containerStyle: flatStyle,\n initialDimensions,\n objectFit,\n onError,\n source: nomalizedSource\n });\n}\n","import { useMemo, useRef } from 'react';\nimport { useSharedProps } from '../context/SharedPropsProvider';\nimport {\n IncompleteImageDimensions,\n UseIMGElementStateProps\n} from './img-types';\n\nexport default function useIMGNormalizedSource({\n source,\n specifiedDimensions\n}: Pick & {\n specifiedDimensions: IncompleteImageDimensions;\n}) {\n const cachedDimensions = useRef(specifiedDimensions);\n const { provideEmbeddedHeaders } = useSharedProps();\n return useMemo(() => {\n if (source.uri && typeof provideEmbeddedHeaders === 'function') {\n const headers = provideEmbeddedHeaders(source.uri, 'img', {\n printWidth: cachedDimensions.current?.width || undefined,\n printHeight: cachedDimensions.current?.height || undefined\n });\n if (headers) {\n return {\n headers,\n ...source\n };\n }\n }\n return source;\n }, [provideEmbeddedHeaders, source]);\n}\n","import { useMemo } from 'react';\nimport { ImageStyle } from 'react-native';\nimport { ImageDimensions } from '../shared-types';\nimport {\n IncompleteImageDimensions,\n UseIMGElementStateProps\n} from './img-types';\n\nexport type ConcreteDimensionsProps = {\n flatStyle: ImageStyle;\n naturalDimensions: ImageDimensions | null;\n specifiedDimensions: IncompleteImageDimensions;\n} & Pick;\n\nfunction extractHorizontalSpace({\n marginHorizontal,\n leftMargin,\n rightMargin,\n margin\n}: any) {\n const realLeftMargin = leftMargin || marginHorizontal || margin || 0;\n const realRightMargin = rightMargin || marginHorizontal || margin || 0;\n return realLeftMargin + realRightMargin;\n}\n\nfunction scaleUp(\n minDimensions: ImageDimensions,\n desiredDimensions: ImageDimensions\n): ImageDimensions {\n const aspectRatio = desiredDimensions.width / desiredDimensions.height;\n if (desiredDimensions.width < minDimensions.width) {\n return scaleUp(minDimensions, {\n width: minDimensions.width,\n height: minDimensions.width / aspectRatio\n });\n }\n if (desiredDimensions.height < minDimensions.height) {\n return scaleUp(minDimensions, {\n height: minDimensions.height,\n width: minDimensions.height * aspectRatio\n });\n }\n return desiredDimensions;\n}\n\nfunction scaleDown(\n maxDimensions: ImageDimensions,\n desiredDimensions: ImageDimensions\n): ImageDimensions {\n const aspectRatio = desiredDimensions.width / desiredDimensions.height;\n if (desiredDimensions.width > maxDimensions.width) {\n return scaleDown(maxDimensions, {\n width: maxDimensions.width,\n height: maxDimensions.width / aspectRatio\n });\n }\n if (desiredDimensions.height > maxDimensions.height) {\n return scaleDown(maxDimensions, {\n height: maxDimensions.height,\n width: maxDimensions.height * aspectRatio\n });\n }\n return desiredDimensions;\n}\n\nfunction scale(\n { minBox, maxBox }: { maxBox: ImageDimensions; minBox: ImageDimensions },\n originalBox: ImageDimensions\n) {\n return scaleDown(maxBox, scaleUp(minBox, originalBox));\n}\n\nfunction computeConcreteDimensions(params: any) {\n const {\n computeMaxWidth,\n contentWidth,\n flattenStyles,\n naturalWidth,\n naturalHeight,\n specifiedWidth,\n specifiedHeight\n } = params;\n const horizontalSpace = extractHorizontalSpace(flattenStyles);\n const {\n maxWidth = Infinity,\n maxHeight = Infinity,\n minWidth = 0,\n minHeight = 0\n } = flattenStyles;\n const imagesMaxWidth =\n typeof contentWidth === 'number' ? computeMaxWidth(contentWidth) : Infinity;\n const minBox = {\n width: minWidth,\n height: minHeight\n };\n const maxBox = {\n width:\n Math.min(\n imagesMaxWidth,\n maxWidth,\n typeof specifiedWidth === 'number' ? specifiedWidth : Infinity\n ) - horizontalSpace,\n height: Math.min(\n typeof specifiedHeight === 'number' ? specifiedHeight : Infinity,\n maxHeight\n )\n };\n if (\n typeof specifiedWidth === 'number' &&\n typeof specifiedHeight === 'number'\n ) {\n return scale(\n { minBox, maxBox },\n {\n width: specifiedWidth,\n height: specifiedHeight\n }\n );\n }\n if (naturalWidth != null && naturalHeight != null) {\n return scale(\n { minBox, maxBox },\n {\n width: naturalWidth,\n height: naturalHeight\n }\n );\n }\n return null;\n}\n\nexport default function useImageConcreteDimensions<\n P extends ConcreteDimensionsProps\n>({\n flatStyle,\n naturalDimensions,\n specifiedDimensions,\n computeMaxWidth,\n contentWidth\n}: P): P['naturalDimensions'] extends ImageDimensions\n ? ImageDimensions\n : ImageDimensions | null {\n return useMemo(() => {\n return computeConcreteDimensions({\n flattenStyles: flatStyle,\n computeMaxWidth,\n contentWidth,\n naturalWidth: naturalDimensions?.width,\n naturalHeight: naturalDimensions?.height,\n specifiedWidth: specifiedDimensions.width,\n specifiedHeight: specifiedDimensions.height\n }) as any;\n }, [\n computeMaxWidth,\n contentWidth,\n flatStyle,\n naturalDimensions,\n specifiedDimensions.height,\n specifiedDimensions.width\n ]);\n}\n","import type {\n UseIMGElementStateProps,\n IMGElementState,\n IMGElementStateBase,\n IMGElementStateError,\n IMGElementStateSuccess,\n IMGElementStateLoading\n} from './img-types';\nimport extractImageStyleProps from './extractImageStyleProps';\nimport { ImageDimensions } from '../shared-types';\n\ninterface GetStateProps extends Omit {\n concreteDimensions: C;\n error: Error | null;\n initialDimensions: ImageDimensions;\n objectFit: UseIMGElementStateProps['objectFit'];\n onError?: (e: Error) => void;\n}\n\nexport function getIMGState(\n props: GetStateProps\n): IMGElementStateError | IMGElementStateSuccess;\nexport function getIMGState(\n props: GetStateProps\n): IMGElementState;\nexport function getIMGState({\n error,\n alt,\n altColor,\n source,\n containerStyle,\n concreteDimensions,\n initialDimensions,\n objectFit,\n onError\n}: GetStateProps): IMGElementState {\n if (error) {\n return {\n type: 'error',\n alt,\n altColor,\n source,\n error,\n containerStyle,\n dimensions: concreteDimensions ?? initialDimensions\n };\n }\n if (concreteDimensions != null) {\n return {\n type: 'success',\n alt,\n altColor,\n source,\n onError,\n containerStyle,\n imageStyle: extractImageStyleProps(containerStyle, objectFit),\n dimensions: concreteDimensions\n } as IMGElementStateSuccess;\n }\n return {\n type: 'loading',\n alt,\n altColor,\n source,\n containerStyle,\n dimensions: initialDimensions\n } as IMGElementStateLoading;\n}\n","import { useMemo } from 'react';\nimport {\n UseIMGElementStateProps,\n IncompleteImageDimensions\n} from './img-types';\nimport getDimensionsWithAspectRatio from './getDimensionsWithAspectRatio';\nimport { StyleSheet } from 'react-native';\n\nfunction normalizeSize(\n dimension: string | number | null | undefined,\n options: Partial<{\n containerDimension: number | null;\n enablePercentWidth: boolean;\n }>\n) {\n const containerDimension = options.containerDimension || null;\n const enablePercentWidth = options.enablePercentWidth || false;\n if (\n dimension === null ||\n dimension === undefined ||\n Number.isNaN(dimension)\n ) {\n return null;\n }\n if (typeof dimension === 'number') {\n return dimension;\n }\n if (\n dimension.search('%') !== -1 &&\n enablePercentWidth &&\n typeof containerDimension === 'number'\n ) {\n return (parseFloat(dimension) * containerDimension) / 100;\n } else if (dimension.trim().match(/^[\\d.]+$/)) {\n return parseFloat(dimension);\n }\n return null;\n}\n\n/**\n * Extract specified dimensions from props.\n */\nfunction deriveSpecifiedDimensionsFromProps({\n width,\n height,\n contentWidth,\n flatStyle,\n enableExperimentalPercentWidth: enablePercentWidth\n}: Pick<\n UseIMGElementStateProps,\n 'width' | 'height' | 'contentWidth' | 'enableExperimentalPercentWidth'\n> & { flatStyle: Record }): IncompleteImageDimensions {\n const normalizeOptionsWidth = {\n enablePercentWidth,\n containerDimension: contentWidth\n };\n const normalizeOptionsHeight = {\n enablePercentWidth: false\n };\n const widthProp = normalizeSize(width, normalizeOptionsWidth);\n const heightProp = normalizeSize(height, normalizeOptionsHeight);\n const styleWidth = normalizeSize(flatStyle.width, normalizeOptionsWidth);\n const styleHeight = normalizeSize(flatStyle.height, normalizeOptionsHeight);\n return getDimensionsWithAspectRatio(\n styleWidth ?? widthProp,\n styleHeight ?? heightProp,\n flatStyle.aspectRatio\n );\n}\n\nexport default function useImageSpecifiedDimensions(\n props: UseIMGElementStateProps\n) {\n const { contentWidth, enableExperimentalPercentWidth, style, width, height } =\n props;\n const flatStyle = useMemo(() => StyleSheet.flatten(style) || {}, [style]);\n const specifiedDimensions = useMemo(\n () =>\n deriveSpecifiedDimensionsFromProps({\n contentWidth,\n enableExperimentalPercentWidth,\n width,\n height,\n flatStyle\n }),\n [contentWidth, enableExperimentalPercentWidth, flatStyle, height, width]\n );\n return { flatStyle, specifiedDimensions };\n}\n","import React, { ReactElement, useCallback } from 'react';\nimport {\n Image,\n ImageErrorEventData,\n ImageStyle,\n NativeSyntheticEvent\n} from 'react-native';\nimport { IMGElementStateSuccess } from './img-types';\n\nconst defaultImageStyle: ImageStyle = { resizeMode: 'cover' };\n\n/**\n * Default success \"image\" view for the {@link IMGElement} component.\n */\nexport default function IMGElementContentSuccess({\n source,\n imageStyle,\n dimensions,\n onError\n}: IMGElementStateSuccess): ReactElement {\n const onImageError = useCallback(\n ({ nativeEvent: { error } }: NativeSyntheticEvent) =>\n onError(error),\n [onError]\n );\n return (\n \n );\n}\n","import React, {\n ComponentType,\n PropsWithChildren,\n ReactElement,\n useMemo\n} from 'react';\nimport { View, StyleSheet, ViewStyle, ViewProps } from 'react-native';\nimport GenericPressable from '../GenericPressable';\nimport { IMGElementProps } from './img-types';\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n alignSelf: 'stretch',\n justifyContent: 'center'\n }\n});\n\n/**\n * Container for the {@link IMGElement} component.\n */\nexport default function IMGElementContainer({\n style,\n onPress,\n testID,\n children,\n ...otherProps\n}: PropsWithChildren<\n Pick &\n Omit & { style: ViewStyle }\n>): ReactElement {\n const containerStyle = useMemo(() => {\n const { width, height, ...remainingStyle } = style;\n return [styles.container, remainingStyle];\n }, [style]);\n const Container: ComponentType =\n typeof onPress === 'function' ? GenericPressable : View;\n return React.createElement(\n Container,\n { ...otherProps, style: containerStyle, onPress, testID },\n children\n );\n}\n","import React, { PropsWithChildren } from 'react';\nimport {\n Platform,\n TouchableHighlight,\n TouchableNativeFeedback,\n View\n} from 'react-native';\nimport { useSharedProps } from './context/SharedPropsProvider';\nimport { GenericPressableProps } from './shared-types';\n\nexport default function GenericPressable({\n style,\n children,\n borderless = false,\n ...otherProps\n}: PropsWithChildren) {\n const { pressableHightlightColor, GenericPressable: UserProvidedPressable } =\n useSharedProps();\n if (UserProvidedPressable) {\n return (\n \n {children}\n \n );\n }\n if (Platform.OS === 'android') {\n // TouchableNativeFeedback does not support a\n // style prop. So we must wrap it inside a View.\n return (\n \n \n {children}\n \n \n );\n }\n return (\n \n {children}\n \n );\n}\n","import React, { PropsWithChildren, ReactElement } from 'react';\nimport { View } from 'react-native';\nimport { IMGElementStateLoading } from './img-types';\n\n/**\n * Default loading view for the {@link IMGElement} component.\n */\nexport default function IMGElementContentLoading({\n dimensions,\n children\n}: PropsWithChildren): ReactElement {\n return (\n \n {children}\n \n );\n}\n","import React, { ReactElement } from 'react';\nimport { IMGElementStateError } from './img-types';\nimport IMGElementContentAlt from './IMGElementContentAlt';\n\n/**\n * Default error view for the {@link IMGElement} component.\n */\nexport default function IMGElementContentError(\n props: IMGElementStateError\n): ReactElement {\n return ;\n}\n","import React, { PropsWithChildren, ReactElement } from 'react';\nimport { StyleSheet, Text, View } from 'react-native';\nimport { IMGElementStateBase } from './img-types';\n\nconst styles = StyleSheet.create({\n altBox: {\n borderWidth: StyleSheet.hairlineWidth,\n overflow: 'hidden',\n justifyContent: 'center'\n },\n altText: { textAlign: 'center', fontStyle: 'italic' }\n});\n\n/**\n * Alt view for the {@link IMGElement} component.\n */\nexport default function IMGElementContentAlt({\n dimensions,\n alt,\n altColor,\n testID,\n children\n}: PropsWithChildren): ReactElement {\n return (\n \n {alt}\n {children}\n \n );\n}\n","import { useContext } from 'react';\nimport contentWidthContext from '../context/contentWidthContext';\n\n/**\n * A hook to get access to the ambient `contentWidth`.\n *\n * @returns The contentWidth available in context.\n *\n * @public\n */\nexport default function useContentWidth() {\n return useContext(contentWidthContext);\n}\n","import React from 'react';\nimport { Dimensions } from 'react-native';\n\nconst contentWidthContext = React.createContext(Dimensions.get('window').width);\n\nexport default contentWidthContext;\n","import React from 'react';\nimport { TBlock } from '@native-html/transient-render-engine';\nimport { InternalBlockRenderer } from '../render/render-types';\nimport {\n InternalRendererProps,\n DefaultSupportedListStyleType\n} from '../shared-types';\nimport OLElement, { OLElementProps } from '../elements/OLElement';\nimport { useRendererProps } from '../context/RenderersPropsProvider';\n\nfunction getFallbackListStyleTypeFromNestLevel(\n nestLevel: number\n): DefaultSupportedListStyleType {\n switch (nestLevel % 3) {\n case 0:\n return 'decimal';\n\n /* istanbul ignore next */\n case 1:\n return 'upper-alpha';\n\n /* istanbul ignore next */\n default:\n return 'lower-alpha';\n }\n}\n\nexport function useOLElementProps(\n props: InternalRendererProps\n): OLElementProps {\n const config = useRendererProps('ol');\n return {\n ...props,\n getFallbackListStyleTypeFromNestLevel,\n ...config\n };\n}\n\nconst OLRenderer: InternalBlockRenderer = (props) => {\n return React.createElement(OLElement, useOLElementProps(props));\n};\n\nexport default OLRenderer;\n","import React from 'react';\nimport ListElement, { ListElementProps } from './ListElement';\n\nexport type OLElementProps = Omit, 'listType'>;\nexport default function OLElement(props: OLElementProps) {\n return React.createElement(ListElement, { ...props, listType: 'ol' });\n}\n","import { StyleSheet, View } from 'react-native';\nimport React from 'react';\nimport { TBlock, TNode } from '@native-html/transient-render-engine';\nimport { MarkedListItem, useMarkedList } from '@jsamr/react-native-li';\nimport type {\n DefaultSupportedListStyleType,\n InternalRendererProps,\n ListElementConfig,\n TChildProps\n} from '../shared-types';\nimport { useTChildrenRenderer } from '../context/TChildrenRendererContext';\nimport { DEFAULT_TEXT_COLOR } from '../constants';\nimport pick from 'ramda/src/pick';\nimport { useListStyleSpecs } from '../context/ListStyleSpecsProvider';\n\nexport interface ListElementProps\n extends InternalRendererProps,\n ListElementConfig {\n listType: T;\n}\n\nfunction getStartIndex(tnode: TNode) {\n const parsedIndex = tnode.attributes.start\n ? Number(tnode.attributes.start)\n : Number.NaN;\n return Number.isNaN(parsedIndex) ? 1 : parsedIndex;\n}\n\nconst pickMarkerTextStyles = pick([\n 'fontStyle',\n 'fontSize',\n 'fontWeight',\n 'fontFamily',\n 'fontVariant',\n 'color',\n 'lineHeight'\n]);\n\nfunction extractMarkerTextStyle(tnode: TNode) {\n return Object.assign(\n {\n lineHeight: 14 * 1.3,\n fontSize: 14,\n color: DEFAULT_TEXT_COLOR\n },\n pickMarkerTextStyles(tnode.styles.nativeTextFlow)\n );\n}\n\nexport function getMarkerBoxStyle(\n markerWidth: number | false,\n paddingValue: string | number | undefined\n) {\n const markerBoxWidth =\n typeof markerWidth === 'number'\n ? typeof paddingValue === 'number'\n ? Math.max(paddingValue, markerWidth)\n : markerWidth\n : paddingValue;\n return { width: markerBoxWidth };\n}\n\nconst listStyleTypeFallbackRecord: Record<\n 'ol' | 'ul',\n DefaultSupportedListStyleType\n> = {\n ol: 'decimal',\n ul: 'disc'\n};\n\nexport default function ListElement({\n tnode,\n TDefaultRenderer,\n listType,\n style,\n getFallbackListStyleTypeFromNestLevel,\n markerBoxStyle,\n markerTextStyle: providedMarkerTextStyle,\n enableExperimentalRtl = false,\n enableRemoveTopMarginIfNested = true,\n enableRemoveBottomMarginIfNested = true,\n enableDynamicMarkerBoxWidth = false,\n ...props\n}: ListElementProps<'ol' | 'ul'>) {\n const listStyleSpecs = useListStyleSpecs();\n const markers = tnode.markers;\n const nestLevel =\n listType === 'ol' ? markers.olNestLevel : markers.ulNestLevel;\n const TChildrenRenderer = useTChildrenRenderer();\n const rtl =\n enableExperimentalRtl &&\n (style.direction === 'rtl' || markers.direction === 'rtl');\n const removeTopMarginStyle =\n enableRemoveTopMarginIfNested &&\n tnode.parent?.tagName === 'li' &&\n tnode.nodeIndex === 0\n ? styles.zeroMarginTop\n : null;\n const removeBottomMarginStyle =\n enableRemoveBottomMarginIfNested &&\n tnode.parent?.tagName === 'li' &&\n tnode.nodeIndex === tnode.parent?.children.length - 1\n ? styles.zeroMarginBottom\n : null;\n const ownListType = tnode.styles.webTextFlow.listStyleType as\n | DefaultSupportedListStyleType\n | undefined;\n const selectedListType =\n getFallbackListStyleTypeFromNestLevel!(nestLevel) ||\n ownListType ||\n listStyleTypeFallbackRecord[listType];\n const listStyleType = ownListType || selectedListType;\n if (\n typeof __DEV__ === 'boolean' &&\n __DEV__ &&\n !(listStyleType in listStyleSpecs)\n ) {\n if (listStyleType.match(/^(\"|')/)) {\n console.warn(\n \"This library doesn't support strings for list-style-type CSS properties.\"\n );\n } else {\n console.warn(\n `list-style-type \"${listStyleType}\" is not handled by react-native-render-html. ` +\n 'You can easily provide support for this style via \"customListStyleSpecs\" prop.'\n );\n }\n }\n const spec =\n listStyleType in listStyleSpecs\n ? listStyleSpecs[listStyleType]\n : listStyleSpecs[selectedListType];\n const counterRenderer = spec.counterStyleRenderer;\n const startIndex = getStartIndex(tnode);\n const markerTextStyle =\n typeof providedMarkerTextStyle === 'object' && providedMarkerTextStyle\n ? { ...extractMarkerTextStyle(tnode), ...providedMarkerTextStyle }\n : extractMarkerTextStyle(tnode);\n const itemProps = useMarkedList({\n counterRenderer,\n startIndex,\n markerTextStyle,\n markerBoxStyle,\n rtlLineReversed: rtl,\n rtlMarkerReversed: rtl,\n length: tnode.children.length,\n dynamicMarkerBoxWidth: enableDynamicMarkerBoxWidth,\n renderMarker: spec.renderMarker\n });\n const markerWidth = itemProps.markerTextWidth;\n const fixedPaddingRule = rtl\n ? ('paddingRight' as const)\n : ('paddingLeft' as const);\n // Fallback to padding-left value on RTL mode\n const paddingValue = style[fixedPaddingRule] ?? style.paddingLeft;\n const markerBoxWidthStyle = getMarkerBoxStyle(markerWidth, paddingValue);\n const renderChild = ({ childElement, key, index }: TChildProps) => (\n \n {childElement}\n \n );\n\n const dynamicPaddingStyle = {\n position: 'relative' as const,\n [fixedPaddingRule]: 0\n };\n return (\n \n \n \n );\n}\n\nconst styles = StyleSheet.create({\n zeroMarginTop: { marginTop: 0 },\n zeroMarginBottom: { marginBottom: 0 },\n shrink: { flexShrink: 1 }\n});\n","/* eslint-disable react-native/no-inline-styles */\nimport { MarkerBoxProps } from '@jsamr/react-native-li';\nimport { mapObjIndexed } from 'ramda';\nimport React, {\n createContext,\n PropsWithChildren,\n useContext,\n useMemo\n} from 'react';\nimport { Text, View } from 'react-native';\nimport defaultListStyleSpecs from '../elements/defaultListStyleSpecs';\nimport { ListStyleSpec, UnitaryListStyleSpec } from '../shared-types';\nimport { useSharedProps } from './SharedPropsProvider';\n\nconst listStyleSpecsContext = createContext<\n Record<\n string,\n ListStyleSpec & { renderMarker?: (props: MarkerBoxProps) => any }\n >\n>(defaultListStyleSpecs);\n\nexport function useListStyleSpecs() {\n return useContext(listStyleSpecsContext);\n}\n\nfunction createSymbolicMarkerRenderer({\n Component,\n counterStyleRenderer\n}: UnitaryListStyleSpec) {\n const prefix = counterStyleRenderer.renderPrefix();\n const suffix = counterStyleRenderer.renderSuffix();\n return ({\n style,\n markerTextStyle,\n counterIndex,\n rtlMarkerReversed\n }: MarkerBoxProps) => {\n return (\n \n {!!prefix && {prefix}}\n {React.createElement(Component, {\n ...(markerTextStyle as any),\n index: counterIndex\n })}\n {!!suffix && {suffix}}\n \n );\n };\n}\n\nconst makeMarkerRenderers = mapObjIndexed((value: ListStyleSpec) => {\n if (value.type === 'unitary') {\n return {\n ...value,\n renderMarker: createSymbolicMarkerRenderer(value)\n };\n }\n return value;\n});\n\nexport default function ListStyleSpecsProvider({\n children\n}: PropsWithChildren<{}>) {\n const { customListStyleSpecs } = useSharedProps();\n const mergedListStyleSpecs = useMemo(() => {\n return makeMarkerRenderers(\n customListStyleSpecs != null\n ? { ...defaultListStyleSpecs, ...customListStyleSpecs }\n : defaultListStyleSpecs\n );\n }, [customListStyleSpecs]);\n return (\n \n {children}\n \n );\n}\n","import React from 'react';\nimport { InternalBlockRenderer } from '../render/render-types';\nimport {\n InternalRendererProps,\n DefaultSupportedListStyleType\n} from '../shared-types';\nimport { TBlock } from '@native-html/transient-render-engine';\nimport ULElement, { ULElementProps } from '../elements/ULElement';\nimport { useRendererProps } from '../context/RenderersPropsProvider';\n\nfunction getFallbackListStyleTypeFromNestLevel(\n nestLevel: number\n): DefaultSupportedListStyleType {\n switch (nestLevel % 3) {\n case 0:\n return 'disc';\n\n /* istanbul ignore next */\n case 1:\n return 'circle';\n\n /* istanbul ignore next */\n default:\n return 'square';\n }\n}\n\nexport function useULElementProps(\n props: InternalRendererProps\n): ULElementProps {\n const config = useRendererProps('ul');\n return {\n ...props,\n getFallbackListStyleTypeFromNestLevel,\n ...config\n };\n}\n\nconst ULRenderer: InternalBlockRenderer = (props) => {\n return React.createElement(ULElement, useULElementProps(props));\n};\n\nexport default ULRenderer;\n","import React from 'react';\nimport ListElement, { ListElementProps } from './ListElement';\n\nexport type ULElementProps = Omit, 'listType'>;\n\nexport default function ULElement(props: ULElementProps) {\n return React.createElement(ListElement, {\n ...props,\n listType: 'ul'\n });\n}\n","import { TNode } from '@native-html/transient-render-engine';\nimport getCollapsedMarginTop from './getCollapsedMarginTop';\n\nfunction isCollapsible(tnode: TNode) {\n return tnode.type === 'block' || tnode.type === 'phrasing';\n}\n\n/**\n * Compute top collapsed margin for the nth {@link TNode}-child of a list of\n * TNodes.\n *\n * @param n - The index for which the top margin should be collapsed.\n * @param tchildren - The list of {@link TNode} children.\n * @returns `null` when no margin collapsing should apply, a number otherwise.\n * @public\n */\nexport default function collapseTopMarginForChild(\n n: number,\n tchildren: readonly TNode[]\n): number | null {\n const childTnode = tchildren[n];\n if (isCollapsible(childTnode) && n > 0 && isCollapsible(tchildren[n - 1])) {\n return getCollapsedMarginTop(tchildren[n - 1], childTnode);\n }\n return null;\n}\n","import React from 'react';\nimport { ActivityIndicator, StyleSheet, Text, View } from 'react-native';\nimport { RenderHTMLConfig, HTMLSourceUri } from '../shared-types';\n\nconst styles = StyleSheet.create({\n alignCenter: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center'\n },\n errorText: {\n fontStyle: 'italic',\n fontSize: 16\n }\n});\n\nexport function defaultRenderError(source: HTMLSourceUri) {\n return (\n \n \n Failed to load HTML from {source.uri}\n \n \n );\n}\n\nexport function defaultRenderLoading() {\n return (\n \n \n \n );\n}\n\nconst sourceLoaderContext = React.createContext<\n Pick, 'remoteErrorView' | 'remoteLoadingView'>\n>({\n remoteErrorView: defaultRenderError,\n remoteLoadingView: defaultRenderLoading\n});\n\nexport default sourceLoaderContext;\n","import equals from 'ramda/src/equals';\nimport React, { memo, ReactElement, useMemo } from 'react';\nimport { Dimensions } from 'react-native';\nimport PropTypes from 'prop-types';\nimport ttreeEventsContext from './context/ttreeEventsContext';\nimport isUriSource from './helpers/isUriSource';\nimport { SourceLoaderProps, TTreeEvents } from './internal-types';\nimport {\n HTMLSourceDom,\n HTMLSourceInline,\n RenderHTMLSourceProps,\n HTMLSourceUri,\n HTMLSource\n} from './shared-types';\nimport SourceLoaderUri from './SourceLoaderUri';\nimport SourceLoaderInline from './SourceLoaderInline';\nimport SourceLoaderDom from './SourceLoaderDom';\nimport debugMessage from './debugMessages';\nimport contentWidthContext from './context/contentWidthContext';\nimport isDomSource from './helpers/isDomSource';\nimport useProfiler from './hooks/useProfiler';\n\nexport type RenderHTMLSourcePropTypes = Record<\n keyof RenderHTMLSourceProps,\n any\n>;\n\nexport const renderSourcePropTypes: RenderHTMLSourcePropTypes = {\n source: PropTypes.oneOfType([\n PropTypes.shape({\n html: PropTypes.string.isRequired,\n baseUrl: PropTypes.string\n }),\n PropTypes.shape({\n dom: PropTypes.object.isRequired,\n baseUrl: PropTypes.string\n }),\n PropTypes.shape({\n uri: PropTypes.string.isRequired,\n method: PropTypes.string,\n body: PropTypes.any,\n headers: PropTypes.object\n })\n ]),\n onTTreeChange: PropTypes.func,\n onHTMLLoaded: PropTypes.func,\n onDocumentMetadataLoaded: PropTypes.func,\n contentWidth: PropTypes.number\n};\n\nfunction isEmptySource(source: undefined | HTMLSource) {\n return (\n !source ||\n (typeof (source as HTMLSourceUri).uri !== 'string' &&\n typeof (source as HTMLSourceInline).html !== 'string' &&\n !(source as HTMLSourceDom).dom)\n );\n}\n\nfunction RawSourceLoader({\n source,\n ...props\n}: SourceLoaderProps): ReactElement | null {\n if (isEmptySource(source)) {\n /* istanbul ignore next */\n if (typeof __DEV__ === 'boolean' && __DEV__) {\n console.warn(debugMessage.noSource);\n }\n return null;\n }\n if (isUriSource(source)) {\n return React.createElement(SourceLoaderUri, { source, ...props });\n }\n if (isDomSource(source)) {\n return React.createElement(SourceLoaderDom, { source, ...props });\n }\n return React.createElement(SourceLoaderInline, { source, ...props });\n}\n\n// check if for each key of two objects, the values are equal\nfunction shallowEqual(prop1: any, prop2: any) {\n if (!equals(Object.keys(prop1), Object.keys(prop2))) {\n return false;\n }\n for (const key in prop1) {\n if (prop1[key] !== prop2[key]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * A React component to render HTML snippets.\n *\n * @remarks This component is useful when you have to load dozens of HTML\n * snippets with the same config. Performance is expected to improve in such\n * scenarios.\n *\n * @warning This component requires to have {@link TRenderEngineProvider}\n * and {@link RenderHTMLConfigProvider} as parents.\n */\nconst RenderHTMLSource = memo(\n function RenderHtmlSource({\n onDocumentMetadataLoaded,\n onTTreeChange,\n contentWidth,\n ...props\n }: RenderHTMLSourceProps) {\n const profile = useProfiler({\n prop: 'onDocumentMetadataLoaded or onTTreeChange'\n });\n const ttreeEvents: TTreeEvents = useMemo(() => {\n typeof __DEV__ === 'boolean' && __DEV__ && profile();\n return {\n onDocumentMetadataLoaded,\n onTTreeChange\n };\n }, [onDocumentMetadataLoaded, onTTreeChange, profile]);\n if (typeof __DEV__ === 'boolean' && __DEV__) {\n if (!(typeof contentWidth === 'number')) {\n console.warn(debugMessage.contentWidth);\n }\n }\n return (\n \n \n {React.createElement(RawSourceLoader, props)}\n \n \n );\n },\n ({ source: prevSource, ...prev }, { source: currSource, ...curr }) => {\n return shallowEqual(prevSource, currSource) && shallowEqual(prev, curr);\n }\n);\n\n/**\n * @ignore\n */\n(RenderHTMLSource as any).propTypes = renderSourcePropTypes;\n\nexport default RenderHTMLSource;\n","'use strict'\n\nmodule.exports = encode\n\n// Encode special characters in `value`.\nfunction encode(value, options) {\n value = value.replace(\n options.subset ? charactersToExpression(options.subset) : /[\"&'<>`]/g,\n basic\n )\n\n if (options.subset || options.escapeOnly) {\n return value\n }\n\n return (\n value\n // Surrogate pairs.\n .replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, surrogate)\n // BMP control characters (C0 except for LF, CR, SP; DEL; and some more\n // non-ASCII ones).\n .replace(\n // eslint-disable-next-line no-control-regex, unicorn/no-hex-escape\n /[\\x01-\\t\\v\\f\\x0E-\\x1F\\x7F\\x81\\x8D\\x8F\\x90\\x9D\\xA0-\\uFFFF]/g,\n basic\n )\n )\n\n function surrogate(pair, index, all) {\n return options.format(\n (pair.charCodeAt(0) - 0xd800) * 0x400 +\n pair.charCodeAt(1) -\n 0xdc00 +\n 0x10000,\n all.charCodeAt(index + 2),\n options\n )\n }\n\n function basic(character, index, all) {\n return options.format(\n character.charCodeAt(0),\n all.charCodeAt(index + 1),\n options\n )\n }\n}\n\nfunction charactersToExpression(subset) {\n var groups = []\n var index = -1\n\n while (++index < subset.length) {\n groups.push(subset[index].replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&'))\n }\n\n return new RegExp('(?:' + groups.join('|') + ')', 'g')\n}\n","module.exports = formatPretty\n\nvar toHexadecimal = require('./to-hexadecimal')\nvar toDecimal = require('./to-decimal')\nvar toNamed = require('./to-named')\n\n// Encode `character` according to `options`.\nfunction formatPretty(code, next, options) {\n var named\n var numeric\n var decimal\n\n if (options.useNamedReferences || options.useShortestReferences) {\n named = toNamed(\n code,\n next,\n options.omitOptionalSemicolons,\n options.attribute\n )\n }\n\n if (options.useShortestReferences || !named) {\n numeric = toHexadecimal(code, next, options.omitOptionalSemicolons)\n\n // Use the shortest numeric reference when requested.\n // A simple algorithm would use decimal for all code points under 100, as\n // those are shorter than hexadecimal:\n //\n // * `c` vs `c` (decimal shorter)\n // * `d` vs `d` (equal)\n //\n // However, because we take `next` into consideration when `omit` is used,\n // And it would be possible that decimals are shorter on bigger values as\n // well if `next` is hexadecimal but not decimal, we instead compare both.\n if (options.useShortestReferences) {\n decimal = toDecimal(code, next, options.omitOptionalSemicolons)\n\n if (decimal.length < numeric.length) {\n numeric = decimal\n }\n }\n }\n\n return named &&\n (!options.useShortestReferences || named.length < numeric.length)\n ? named\n : numeric\n}\n","/* eslint-env node */\n'use strict';\n\n// SDP helpers.\nvar SDPUtils = {};\n\n// Generate an alphanumeric identifier for cname or mids.\n// TODO: use UUIDs instead? https://gist.github.com/jed/982883\nSDPUtils.generateIdentifier = function() {\n return Math.random().toString(36).substr(2, 10);\n};\n\n// The RTCP CNAME used by all peerconnections from the same JS.\nSDPUtils.localCName = SDPUtils.generateIdentifier();\n\n// Splits SDP into lines, dealing with both CRLF and LF.\nSDPUtils.splitLines = function(blob) {\n return blob.trim().split('\\n').map(function(line) {\n return line.trim();\n });\n};\n// Splits SDP into sessionpart and mediasections. Ensures CRLF.\nSDPUtils.splitSections = function(blob) {\n var parts = blob.split('\\nm=');\n return parts.map(function(part, index) {\n return (index > 0 ? 'm=' + part : part).trim() + '\\r\\n';\n });\n};\n\n// returns the session description.\nSDPUtils.getDescription = function(blob) {\n var sections = SDPUtils.splitSections(blob);\n return sections && sections[0];\n};\n\n// returns the individual media sections.\nSDPUtils.getMediaSections = function(blob) {\n var sections = SDPUtils.splitSections(blob);\n sections.shift();\n return sections;\n};\n\n// Returns lines that start with a certain prefix.\nSDPUtils.matchPrefix = function(blob, prefix) {\n return SDPUtils.splitLines(blob).filter(function(line) {\n return line.indexOf(prefix) === 0;\n });\n};\n\n// Parses an ICE candidate line. Sample input:\n// candidate:702786350 2 udp 41819902 8.8.8.8 60769 typ relay raddr 8.8.8.8\n// rport 55996\"\nSDPUtils.parseCandidate = function(line) {\n var parts;\n // Parse both variants.\n if (line.indexOf('a=candidate:') === 0) {\n parts = line.substring(12).split(' ');\n } else {\n parts = line.substring(10).split(' ');\n }\n\n var candidate = {\n foundation: parts[0],\n component: parseInt(parts[1], 10),\n protocol: parts[2].toLowerCase(),\n priority: parseInt(parts[3], 10),\n ip: parts[4],\n address: parts[4], // address is an alias for ip.\n port: parseInt(parts[5], 10),\n // skip parts[6] == 'typ'\n type: parts[7]\n };\n\n for (var i = 8; i < parts.length; i += 2) {\n switch (parts[i]) {\n case 'raddr':\n candidate.relatedAddress = parts[i + 1];\n break;\n case 'rport':\n candidate.relatedPort = parseInt(parts[i + 1], 10);\n break;\n case 'tcptype':\n candidate.tcpType = parts[i + 1];\n break;\n case 'ufrag':\n candidate.ufrag = parts[i + 1]; // for backward compability.\n candidate.usernameFragment = parts[i + 1];\n break;\n default: // extension handling, in particular ufrag\n candidate[parts[i]] = parts[i + 1];\n break;\n }\n }\n return candidate;\n};\n\n// Translates a candidate object into SDP candidate attribute.\nSDPUtils.writeCandidate = function(candidate) {\n var sdp = [];\n sdp.push(candidate.foundation);\n sdp.push(candidate.component);\n sdp.push(candidate.protocol.toUpperCase());\n sdp.push(candidate.priority);\n sdp.push(candidate.address || candidate.ip);\n sdp.push(candidate.port);\n\n var type = candidate.type;\n sdp.push('typ');\n sdp.push(type);\n if (type !== 'host' && candidate.relatedAddress &&\n candidate.relatedPort) {\n sdp.push('raddr');\n sdp.push(candidate.relatedAddress);\n sdp.push('rport');\n sdp.push(candidate.relatedPort);\n }\n if (candidate.tcpType && candidate.protocol.toLowerCase() === 'tcp') {\n sdp.push('tcptype');\n sdp.push(candidate.tcpType);\n }\n if (candidate.usernameFragment || candidate.ufrag) {\n sdp.push('ufrag');\n sdp.push(candidate.usernameFragment || candidate.ufrag);\n }\n return 'candidate:' + sdp.join(' ');\n};\n\n// Parses an ice-options line, returns an array of option tags.\n// a=ice-options:foo bar\nSDPUtils.parseIceOptions = function(line) {\n return line.substr(14).split(' ');\n};\n\n// Parses an rtpmap line, returns RTCRtpCoddecParameters. Sample input:\n// a=rtpmap:111 opus/48000/2\nSDPUtils.parseRtpMap = function(line) {\n var parts = line.substr(9).split(' ');\n var parsed = {\n payloadType: parseInt(parts.shift(), 10) // was: id\n };\n\n parts = parts[0].split('/');\n\n parsed.name = parts[0];\n parsed.clockRate = parseInt(parts[1], 10); // was: clockrate\n parsed.channels = parts.length === 3 ? parseInt(parts[2], 10) : 1;\n // legacy alias, got renamed back to channels in ORTC.\n parsed.numChannels = parsed.channels;\n return parsed;\n};\n\n// Generate an a=rtpmap line from RTCRtpCodecCapability or\n// RTCRtpCodecParameters.\nSDPUtils.writeRtpMap = function(codec) {\n var pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n var channels = codec.channels || codec.numChannels || 1;\n return 'a=rtpmap:' + pt + ' ' + codec.name + '/' + codec.clockRate +\n (channels !== 1 ? '/' + channels : '') + '\\r\\n';\n};\n\n// Parses an a=extmap line (headerextension from RFC 5285). Sample input:\n// a=extmap:2 urn:ietf:params:rtp-hdrext:toffset\n// a=extmap:2/sendonly urn:ietf:params:rtp-hdrext:toffset\nSDPUtils.parseExtmap = function(line) {\n var parts = line.substr(9).split(' ');\n return {\n id: parseInt(parts[0], 10),\n direction: parts[0].indexOf('/') > 0 ? parts[0].split('/')[1] : 'sendrecv',\n uri: parts[1]\n };\n};\n\n// Generates a=extmap line from RTCRtpHeaderExtensionParameters or\n// RTCRtpHeaderExtension.\nSDPUtils.writeExtmap = function(headerExtension) {\n return 'a=extmap:' + (headerExtension.id || headerExtension.preferredId) +\n (headerExtension.direction && headerExtension.direction !== 'sendrecv'\n ? '/' + headerExtension.direction\n : '') +\n ' ' + headerExtension.uri + '\\r\\n';\n};\n\n// Parses an ftmp line, returns dictionary. Sample input:\n// a=fmtp:96 vbr=on;cng=on\n// Also deals with vbr=on; cng=on\nSDPUtils.parseFmtp = function(line) {\n var parsed = {};\n var kv;\n var parts = line.substr(line.indexOf(' ') + 1).split(';');\n for (var j = 0; j < parts.length; j++) {\n kv = parts[j].trim().split('=');\n parsed[kv[0].trim()] = kv[1];\n }\n return parsed;\n};\n\n// Generates an a=ftmp line from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeFmtp = function(codec) {\n var line = '';\n var pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.parameters && Object.keys(codec.parameters).length) {\n var params = [];\n Object.keys(codec.parameters).forEach(function(param) {\n if (codec.parameters[param]) {\n params.push(param + '=' + codec.parameters[param]);\n } else {\n params.push(param);\n }\n });\n line += 'a=fmtp:' + pt + ' ' + params.join(';') + '\\r\\n';\n }\n return line;\n};\n\n// Parses an rtcp-fb line, returns RTCPRtcpFeedback object. Sample input:\n// a=rtcp-fb:98 nack rpsi\nSDPUtils.parseRtcpFb = function(line) {\n var parts = line.substr(line.indexOf(' ') + 1).split(' ');\n return {\n type: parts.shift(),\n parameter: parts.join(' ')\n };\n};\n// Generate a=rtcp-fb lines from RTCRtpCodecCapability or RTCRtpCodecParameters.\nSDPUtils.writeRtcpFb = function(codec) {\n var lines = '';\n var pt = codec.payloadType;\n if (codec.preferredPayloadType !== undefined) {\n pt = codec.preferredPayloadType;\n }\n if (codec.rtcpFeedback && codec.rtcpFeedback.length) {\n // FIXME: special handling for trr-int?\n codec.rtcpFeedback.forEach(function(fb) {\n lines += 'a=rtcp-fb:' + pt + ' ' + fb.type +\n (fb.parameter && fb.parameter.length ? ' ' + fb.parameter : '') +\n '\\r\\n';\n });\n }\n return lines;\n};\n\n// Parses an RFC 5576 ssrc media attribute. Sample input:\n// a=ssrc:3735928559 cname:something\nSDPUtils.parseSsrcMedia = function(line) {\n var sp = line.indexOf(' ');\n var parts = {\n ssrc: parseInt(line.substr(7, sp - 7), 10)\n };\n var colon = line.indexOf(':', sp);\n if (colon > -1) {\n parts.attribute = line.substr(sp + 1, colon - sp - 1);\n parts.value = line.substr(colon + 1);\n } else {\n parts.attribute = line.substr(sp + 1);\n }\n return parts;\n};\n\nSDPUtils.parseSsrcGroup = function(line) {\n var parts = line.substr(13).split(' ');\n return {\n semantics: parts.shift(),\n ssrcs: parts.map(function(ssrc) {\n return parseInt(ssrc, 10);\n })\n };\n};\n\n// Extracts the MID (RFC 5888) from a media section.\n// returns the MID or undefined if no mid line was found.\nSDPUtils.getMid = function(mediaSection) {\n var mid = SDPUtils.matchPrefix(mediaSection, 'a=mid:')[0];\n if (mid) {\n return mid.substr(6);\n }\n};\n\nSDPUtils.parseFingerprint = function(line) {\n var parts = line.substr(14).split(' ');\n return {\n algorithm: parts[0].toLowerCase(), // algorithm is case-sensitive in Edge.\n value: parts[1]\n };\n};\n\n// Extracts DTLS parameters from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the fingerprint line as input. See also getIceParameters.\nSDPUtils.getDtlsParameters = function(mediaSection, sessionpart) {\n var lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=fingerprint:');\n // Note: a=setup line is ignored since we use the 'auto' role.\n // Note2: 'algorithm' is not case sensitive except in Edge.\n return {\n role: 'auto',\n fingerprints: lines.map(SDPUtils.parseFingerprint)\n };\n};\n\n// Serializes DTLS parameters to SDP.\nSDPUtils.writeDtlsParameters = function(params, setupType) {\n var sdp = 'a=setup:' + setupType + '\\r\\n';\n params.fingerprints.forEach(function(fp) {\n sdp += 'a=fingerprint:' + fp.algorithm + ' ' + fp.value + '\\r\\n';\n });\n return sdp;\n};\n\n// Parses a=crypto lines into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#dictionary-rtcsrtpsdesparameters-members\nSDPUtils.parseCryptoLine = function(line) {\n var parts = line.substr(9).split(' ');\n return {\n tag: parseInt(parts[0], 10),\n cryptoSuite: parts[1],\n keyParams: parts[2],\n sessionParams: parts.slice(3),\n };\n};\n\nSDPUtils.writeCryptoLine = function(parameters) {\n return 'a=crypto:' + parameters.tag + ' ' +\n parameters.cryptoSuite + ' ' +\n (typeof parameters.keyParams === 'object'\n ? SDPUtils.writeCryptoKeyParams(parameters.keyParams)\n : parameters.keyParams) +\n (parameters.sessionParams ? ' ' + parameters.sessionParams.join(' ') : '') +\n '\\r\\n';\n};\n\n// Parses the crypto key parameters into\n// https://rawgit.com/aboba/edgertc/master/msortc-rs4.html#rtcsrtpkeyparam*\nSDPUtils.parseCryptoKeyParams = function(keyParams) {\n if (keyParams.indexOf('inline:') !== 0) {\n return null;\n }\n var parts = keyParams.substr(7).split('|');\n return {\n keyMethod: 'inline',\n keySalt: parts[0],\n lifeTime: parts[1],\n mkiValue: parts[2] ? parts[2].split(':')[0] : undefined,\n mkiLength: parts[2] ? parts[2].split(':')[1] : undefined,\n };\n};\n\nSDPUtils.writeCryptoKeyParams = function(keyParams) {\n return keyParams.keyMethod + ':'\n + keyParams.keySalt +\n (keyParams.lifeTime ? '|' + keyParams.lifeTime : '') +\n (keyParams.mkiValue && keyParams.mkiLength\n ? '|' + keyParams.mkiValue + ':' + keyParams.mkiLength\n : '');\n};\n\n// Extracts all SDES paramters.\nSDPUtils.getCryptoParameters = function(mediaSection, sessionpart) {\n var lines = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=crypto:');\n return lines.map(SDPUtils.parseCryptoLine);\n};\n\n// Parses ICE information from SDP media section or sessionpart.\n// FIXME: for consistency with other functions this should only\n// get the ice-ufrag and ice-pwd lines as input.\nSDPUtils.getIceParameters = function(mediaSection, sessionpart) {\n var ufrag = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-ufrag:')[0];\n var pwd = SDPUtils.matchPrefix(mediaSection + sessionpart,\n 'a=ice-pwd:')[0];\n if (!(ufrag && pwd)) {\n return null;\n }\n return {\n usernameFragment: ufrag.substr(12),\n password: pwd.substr(10),\n };\n};\n\n// Serializes ICE parameters to SDP.\nSDPUtils.writeIceParameters = function(params) {\n return 'a=ice-ufrag:' + params.usernameFragment + '\\r\\n' +\n 'a=ice-pwd:' + params.password + '\\r\\n';\n};\n\n// Parses the SDP media section and returns RTCRtpParameters.\nSDPUtils.parseRtpParameters = function(mediaSection) {\n var description = {\n codecs: [],\n headerExtensions: [],\n fecMechanisms: [],\n rtcp: []\n };\n var lines = SDPUtils.splitLines(mediaSection);\n var mline = lines[0].split(' ');\n for (var i = 3; i < mline.length; i++) { // find all codecs from mline[3..]\n var pt = mline[i];\n var rtpmapline = SDPUtils.matchPrefix(\n mediaSection, 'a=rtpmap:' + pt + ' ')[0];\n if (rtpmapline) {\n var codec = SDPUtils.parseRtpMap(rtpmapline);\n var fmtps = SDPUtils.matchPrefix(\n mediaSection, 'a=fmtp:' + pt + ' ');\n // Only the first a=fmtp: is considered.\n codec.parameters = fmtps.length ? SDPUtils.parseFmtp(fmtps[0]) : {};\n codec.rtcpFeedback = SDPUtils.matchPrefix(\n mediaSection, 'a=rtcp-fb:' + pt + ' ')\n .map(SDPUtils.parseRtcpFb);\n description.codecs.push(codec);\n // parse FEC mechanisms from rtpmap lines.\n switch (codec.name.toUpperCase()) {\n case 'RED':\n case 'ULPFEC':\n description.fecMechanisms.push(codec.name.toUpperCase());\n break;\n default: // only RED and ULPFEC are recognized as FEC mechanisms.\n break;\n }\n }\n }\n SDPUtils.matchPrefix(mediaSection, 'a=extmap:').forEach(function(line) {\n description.headerExtensions.push(SDPUtils.parseExtmap(line));\n });\n // FIXME: parse rtcp.\n return description;\n};\n\n// Generates parts of the SDP media section describing the capabilities /\n// parameters.\nSDPUtils.writeRtpDescription = function(kind, caps) {\n var sdp = '';\n\n // Build the mline.\n sdp += 'm=' + kind + ' ';\n sdp += caps.codecs.length > 0 ? '9' : '0'; // reject if no codecs.\n sdp += ' UDP/TLS/RTP/SAVPF ';\n sdp += caps.codecs.map(function(codec) {\n if (codec.preferredPayloadType !== undefined) {\n return codec.preferredPayloadType;\n }\n return codec.payloadType;\n }).join(' ') + '\\r\\n';\n\n sdp += 'c=IN IP4 0.0.0.0\\r\\n';\n sdp += 'a=rtcp:9 IN IP4 0.0.0.0\\r\\n';\n\n // Add a=rtpmap lines for each codec. Also fmtp and rtcp-fb.\n caps.codecs.forEach(function(codec) {\n sdp += SDPUtils.writeRtpMap(codec);\n sdp += SDPUtils.writeFmtp(codec);\n sdp += SDPUtils.writeRtcpFb(codec);\n });\n var maxptime = 0;\n caps.codecs.forEach(function(codec) {\n if (codec.maxptime > maxptime) {\n maxptime = codec.maxptime;\n }\n });\n if (maxptime > 0) {\n sdp += 'a=maxptime:' + maxptime + '\\r\\n';\n }\n sdp += 'a=rtcp-mux\\r\\n';\n\n if (caps.headerExtensions) {\n caps.headerExtensions.forEach(function(extension) {\n sdp += SDPUtils.writeExtmap(extension);\n });\n }\n // FIXME: write fecMechanisms.\n return sdp;\n};\n\n// Parses the SDP media section and returns an array of\n// RTCRtpEncodingParameters.\nSDPUtils.parseRtpEncodingParameters = function(mediaSection) {\n var encodingParameters = [];\n var description = SDPUtils.parseRtpParameters(mediaSection);\n var hasRed = description.fecMechanisms.indexOf('RED') !== -1;\n var hasUlpfec = description.fecMechanisms.indexOf('ULPFEC') !== -1;\n\n // filter a=ssrc:... cname:, ignore PlanB-msid\n var ssrcs = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(function(line) {\n return SDPUtils.parseSsrcMedia(line);\n })\n .filter(function(parts) {\n return parts.attribute === 'cname';\n });\n var primarySsrc = ssrcs.length > 0 && ssrcs[0].ssrc;\n var secondarySsrc;\n\n var flows = SDPUtils.matchPrefix(mediaSection, 'a=ssrc-group:FID')\n .map(function(line) {\n var parts = line.substr(17).split(' ');\n return parts.map(function(part) {\n return parseInt(part, 10);\n });\n });\n if (flows.length > 0 && flows[0].length > 1 && flows[0][0] === primarySsrc) {\n secondarySsrc = flows[0][1];\n }\n\n description.codecs.forEach(function(codec) {\n if (codec.name.toUpperCase() === 'RTX' && codec.parameters.apt) {\n var encParam = {\n ssrc: primarySsrc,\n codecPayloadType: parseInt(codec.parameters.apt, 10)\n };\n if (primarySsrc && secondarySsrc) {\n encParam.rtx = {ssrc: secondarySsrc};\n }\n encodingParameters.push(encParam);\n if (hasRed) {\n encParam = JSON.parse(JSON.stringify(encParam));\n encParam.fec = {\n ssrc: primarySsrc,\n mechanism: hasUlpfec ? 'red+ulpfec' : 'red'\n };\n encodingParameters.push(encParam);\n }\n }\n });\n if (encodingParameters.length === 0 && primarySsrc) {\n encodingParameters.push({\n ssrc: primarySsrc\n });\n }\n\n // we support both b=AS and b=TIAS but interpret AS as TIAS.\n var bandwidth = SDPUtils.matchPrefix(mediaSection, 'b=');\n if (bandwidth.length) {\n if (bandwidth[0].indexOf('b=TIAS:') === 0) {\n bandwidth = parseInt(bandwidth[0].substr(7), 10);\n } else if (bandwidth[0].indexOf('b=AS:') === 0) {\n // use formula from JSEP to convert b=AS to TIAS value.\n bandwidth = parseInt(bandwidth[0].substr(5), 10) * 1000 * 0.95\n - (50 * 40 * 8);\n } else {\n bandwidth = undefined;\n }\n encodingParameters.forEach(function(params) {\n params.maxBitrate = bandwidth;\n });\n }\n return encodingParameters;\n};\n\n// parses http://draft.ortc.org/#rtcrtcpparameters*\nSDPUtils.parseRtcpParameters = function(mediaSection) {\n var rtcpParameters = {};\n\n // Gets the first SSRC. Note tha with RTX there might be multiple\n // SSRCs.\n var remoteSsrc = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(function(line) {\n return SDPUtils.parseSsrcMedia(line);\n })\n .filter(function(obj) {\n return obj.attribute === 'cname';\n })[0];\n if (remoteSsrc) {\n rtcpParameters.cname = remoteSsrc.value;\n rtcpParameters.ssrc = remoteSsrc.ssrc;\n }\n\n // Edge uses the compound attribute instead of reducedSize\n // compound is !reducedSize\n var rsize = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-rsize');\n rtcpParameters.reducedSize = rsize.length > 0;\n rtcpParameters.compound = rsize.length === 0;\n\n // parses the rtcp-mux attrіbute.\n // Note that Edge does not support unmuxed RTCP.\n var mux = SDPUtils.matchPrefix(mediaSection, 'a=rtcp-mux');\n rtcpParameters.mux = mux.length > 0;\n\n return rtcpParameters;\n};\n\n// parses either a=msid: or a=ssrc:... msid lines and returns\n// the id of the MediaStream and MediaStreamTrack.\nSDPUtils.parseMsid = function(mediaSection) {\n var parts;\n var spec = SDPUtils.matchPrefix(mediaSection, 'a=msid:');\n if (spec.length === 1) {\n parts = spec[0].substr(7).split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n var planB = SDPUtils.matchPrefix(mediaSection, 'a=ssrc:')\n .map(function(line) {\n return SDPUtils.parseSsrcMedia(line);\n })\n .filter(function(msidParts) {\n return msidParts.attribute === 'msid';\n });\n if (planB.length > 0) {\n parts = planB[0].value.split(' ');\n return {stream: parts[0], track: parts[1]};\n }\n};\n\n// SCTP\n// parses draft-ietf-mmusic-sctp-sdp-26 first and falls back\n// to draft-ietf-mmusic-sctp-sdp-05\nSDPUtils.parseSctpDescription = function(mediaSection) {\n var mline = SDPUtils.parseMLine(mediaSection);\n var maxSizeLine = SDPUtils.matchPrefix(mediaSection, 'a=max-message-size:');\n var maxMessageSize;\n if (maxSizeLine.length > 0) {\n maxMessageSize = parseInt(maxSizeLine[0].substr(19), 10);\n }\n if (isNaN(maxMessageSize)) {\n maxMessageSize = 65536;\n }\n var sctpPort = SDPUtils.matchPrefix(mediaSection, 'a=sctp-port:');\n if (sctpPort.length > 0) {\n return {\n port: parseInt(sctpPort[0].substr(12), 10),\n protocol: mline.fmt,\n maxMessageSize: maxMessageSize\n };\n }\n var sctpMapLines = SDPUtils.matchPrefix(mediaSection, 'a=sctpmap:');\n if (sctpMapLines.length > 0) {\n var parts = SDPUtils.matchPrefix(mediaSection, 'a=sctpmap:')[0]\n .substr(10)\n .split(' ');\n return {\n port: parseInt(parts[0], 10),\n protocol: parts[1],\n maxMessageSize: maxMessageSize\n };\n }\n};\n\n// SCTP\n// outputs the draft-ietf-mmusic-sctp-sdp-26 version that all browsers\n// support by now receiving in this format, unless we originally parsed\n// as the draft-ietf-mmusic-sctp-sdp-05 format (indicated by the m-line\n// protocol of DTLS/SCTP -- without UDP/ or TCP/)\nSDPUtils.writeSctpDescription = function(media, sctp) {\n var output = [];\n if (media.protocol !== 'DTLS/SCTP') {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.protocol + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctp-port:' + sctp.port + '\\r\\n'\n ];\n } else {\n output = [\n 'm=' + media.kind + ' 9 ' + media.protocol + ' ' + sctp.port + '\\r\\n',\n 'c=IN IP4 0.0.0.0\\r\\n',\n 'a=sctpmap:' + sctp.port + ' ' + sctp.protocol + ' 65535\\r\\n'\n ];\n }\n if (sctp.maxMessageSize !== undefined) {\n output.push('a=max-message-size:' + sctp.maxMessageSize + '\\r\\n');\n }\n return output.join('');\n};\n\n// Generate a session ID for SDP.\n// https://tools.ietf.org/html/draft-ietf-rtcweb-jsep-20#section-5.2.1\n// recommends using a cryptographically random +ve 64-bit value\n// but right now this should be acceptable and within the right range\nSDPUtils.generateSessionId = function() {\n return Math.random().toString().substr(2, 21);\n};\n\n// Write boilder plate for start of SDP\n// sessId argument is optional - if not supplied it will\n// be generated randomly\n// sessVersion is optional and defaults to 2\n// sessUser is optional and defaults to 'thisisadapterortc'\nSDPUtils.writeSessionBoilerplate = function(sessId, sessVer, sessUser) {\n var sessionId;\n var version = sessVer !== undefined ? sessVer : 2;\n if (sessId) {\n sessionId = sessId;\n } else {\n sessionId = SDPUtils.generateSessionId();\n }\n var user = sessUser || 'thisisadapterortc';\n // FIXME: sess-id should be an NTP timestamp.\n return 'v=0\\r\\n' +\n 'o=' + user + ' ' + sessionId + ' ' + version +\n ' IN IP4 127.0.0.1\\r\\n' +\n 's=-\\r\\n' +\n 't=0 0\\r\\n';\n};\n\nSDPUtils.writeMediaSection = function(transceiver, caps, type, stream) {\n var sdp = SDPUtils.writeRtpDescription(transceiver.kind, caps);\n\n // Map ICE parameters (ufrag, pwd) to SDP.\n sdp += SDPUtils.writeIceParameters(\n transceiver.iceGatherer.getLocalParameters());\n\n // Map DTLS parameters to SDP.\n sdp += SDPUtils.writeDtlsParameters(\n transceiver.dtlsTransport.getLocalParameters(),\n type === 'offer' ? 'actpass' : 'active');\n\n sdp += 'a=mid:' + transceiver.mid + '\\r\\n';\n\n if (transceiver.direction) {\n sdp += 'a=' + transceiver.direction + '\\r\\n';\n } else if (transceiver.rtpSender && transceiver.rtpReceiver) {\n sdp += 'a=sendrecv\\r\\n';\n } else if (transceiver.rtpSender) {\n sdp += 'a=sendonly\\r\\n';\n } else if (transceiver.rtpReceiver) {\n sdp += 'a=recvonly\\r\\n';\n } else {\n sdp += 'a=inactive\\r\\n';\n }\n\n if (transceiver.rtpSender) {\n // spec.\n var msid = 'msid:' + stream.id + ' ' +\n transceiver.rtpSender.track.id + '\\r\\n';\n sdp += 'a=' + msid;\n\n // for Chrome.\n sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].ssrc +\n ' ' + msid;\n if (transceiver.sendEncodingParameters[0].rtx) {\n sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].rtx.ssrc +\n ' ' + msid;\n sdp += 'a=ssrc-group:FID ' +\n transceiver.sendEncodingParameters[0].ssrc + ' ' +\n transceiver.sendEncodingParameters[0].rtx.ssrc +\n '\\r\\n';\n }\n }\n // FIXME: this should be written by writeRtpDescription.\n sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].ssrc +\n ' cname:' + SDPUtils.localCName + '\\r\\n';\n if (transceiver.rtpSender && transceiver.sendEncodingParameters[0].rtx) {\n sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].rtx.ssrc +\n ' cname:' + SDPUtils.localCName + '\\r\\n';\n }\n return sdp;\n};\n\n// Gets the direction from the mediaSection or the sessionpart.\nSDPUtils.getDirection = function(mediaSection, sessionpart) {\n // Look for sendrecv, sendonly, recvonly, inactive, default to sendrecv.\n var lines = SDPUtils.splitLines(mediaSection);\n for (var i = 0; i < lines.length; i++) {\n switch (lines[i]) {\n case 'a=sendrecv':\n case 'a=sendonly':\n case 'a=recvonly':\n case 'a=inactive':\n return lines[i].substr(2);\n default:\n // FIXME: What should happen here?\n }\n }\n if (sessionpart) {\n return SDPUtils.getDirection(sessionpart);\n }\n return 'sendrecv';\n};\n\nSDPUtils.getKind = function(mediaSection) {\n var lines = SDPUtils.splitLines(mediaSection);\n var mline = lines[0].split(' ');\n return mline[0].substr(2);\n};\n\nSDPUtils.isRejected = function(mediaSection) {\n return mediaSection.split(' ', 2)[1] === '0';\n};\n\nSDPUtils.parseMLine = function(mediaSection) {\n var lines = SDPUtils.splitLines(mediaSection);\n var parts = lines[0].substr(2).split(' ');\n return {\n kind: parts[0],\n port: parseInt(parts[1], 10),\n protocol: parts[2],\n fmt: parts.slice(3).join(' ')\n };\n};\n\nSDPUtils.parseOLine = function(mediaSection) {\n var line = SDPUtils.matchPrefix(mediaSection, 'o=')[0];\n var parts = line.substr(2).split(' ');\n return {\n username: parts[0],\n sessionId: parts[1],\n sessionVersion: parseInt(parts[2], 10),\n netType: parts[3],\n addressType: parts[4],\n address: parts[5]\n };\n};\n\n// a very naive interpretation of a valid SDP.\nSDPUtils.isValidSDP = function(blob) {\n if (typeof blob !== 'string' || blob.length === 0) {\n return false;\n }\n var lines = SDPUtils.splitLines(blob);\n for (var i = 0; i < lines.length; i++) {\n if (lines[i].length < 2 || lines[i].charAt(1) !== '=') {\n return false;\n }\n // TODO: check the modifier a bit more.\n }\n return true;\n};\n\n// Expose public methods.\nif (typeof module === 'object') {\n module.exports = SDPUtils;\n}\n","'use strict';\n\nvar isArray = Array.isArray;\nvar keyList = Object.keys;\nvar hasProp = Object.prototype.hasOwnProperty;\nvar hasElementType = typeof Element !== 'undefined';\n\nfunction equal(a, b) {\n // fast-deep-equal index.js 2.0.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n var arrA = isArray(a)\n , arrB = isArray(b)\n , i\n , length\n , key;\n\n if (arrA && arrB) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n if (arrA != arrB) return false;\n\n var dateA = a instanceof Date\n , dateB = b instanceof Date;\n if (dateA != dateB) return false;\n if (dateA && dateB) return a.getTime() == b.getTime();\n\n var regexpA = a instanceof RegExp\n , regexpB = b instanceof RegExp;\n if (regexpA != regexpB) return false;\n if (regexpA && regexpB) return a.toString() == b.toString();\n\n var keys = keyList(a);\n length = keys.length;\n\n if (length !== keyList(b).length)\n return false;\n\n for (i = length; i-- !== 0;)\n if (!hasProp.call(b, keys[i])) return false;\n // end fast-deep-equal\n\n // start react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element && b instanceof Element)\n return a === b;\n\n // custom handling for React\n for (i = length; i-- !== 0;) {\n key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (!equal(a[key], b[key])) return false;\n }\n }\n // end react-fast-compare\n\n // fast-deep-equal index.js 2.0.1\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function exportedEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message && error.message.match(/stack|recursion/i)) || (error.number === -2146828260)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('Warning: react-fast-compare does not handle circular references.', error.name, error.message);\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","var parse = require(\"./parse\");\nvar walk = require(\"./walk\");\nvar stringify = require(\"./stringify\");\n\nfunction ValueParser(value) {\n if (this instanceof ValueParser) {\n this.nodes = parse(value);\n return this;\n }\n return new ValueParser(value);\n}\n\nValueParser.prototype.toString = function() {\n return Array.isArray(this.nodes) ? stringify(this.nodes) : \"\";\n};\n\nValueParser.prototype.walk = function(cb, bubble) {\n walk(this.nodes, cb, bubble);\n return this;\n};\n\nValueParser.unit = require(\"./unit\");\n\nValueParser.walk = walk;\n\nValueParser.stringify = stringify;\n\nmodule.exports = ValueParser;\n","var openParentheses = \"(\".charCodeAt(0);\nvar closeParentheses = \")\".charCodeAt(0);\nvar singleQuote = \"'\".charCodeAt(0);\nvar doubleQuote = '\"'.charCodeAt(0);\nvar backslash = \"\\\\\".charCodeAt(0);\nvar slash = \"/\".charCodeAt(0);\nvar comma = \",\".charCodeAt(0);\nvar colon = \":\".charCodeAt(0);\nvar star = \"*\".charCodeAt(0);\nvar uLower = \"u\".charCodeAt(0);\nvar uUpper = \"U\".charCodeAt(0);\nvar plus = \"+\".charCodeAt(0);\nvar isUnicodeRange = /^[a-f0-9?-]+$/i;\n\nmodule.exports = function(input) {\n var tokens = [];\n var value = input;\n\n var next,\n quote,\n prev,\n token,\n escape,\n escapePos,\n whitespacePos,\n parenthesesOpenPos;\n var pos = 0;\n var code = value.charCodeAt(pos);\n var max = value.length;\n var stack = [{ nodes: tokens }];\n var balanced = 0;\n var parent;\n\n var name = \"\";\n var before = \"\";\n var after = \"\";\n\n while (pos < max) {\n // Whitespaces\n if (code <= 32) {\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n token = value.slice(pos, next);\n\n prev = tokens[tokens.length - 1];\n if (code === closeParentheses && balanced) {\n after = token;\n } else if (prev && prev.type === \"div\") {\n prev.after = token;\n prev.sourceEndIndex += token.length;\n } else if (\n code === comma ||\n code === colon ||\n (code === slash &&\n value.charCodeAt(next + 1) !== star &&\n (!parent ||\n (parent && parent.type === \"function\" && parent.value !== \"calc\")))\n ) {\n before = token;\n } else {\n tokens.push({\n type: \"space\",\n sourceIndex: pos,\n sourceEndIndex: next,\n value: token\n });\n }\n\n pos = next;\n\n // Quotes\n } else if (code === singleQuote || code === doubleQuote) {\n next = pos;\n quote = code === singleQuote ? \"'\" : '\"';\n token = {\n type: \"string\",\n sourceIndex: pos,\n quote: quote\n };\n do {\n escape = false;\n next = value.indexOf(quote, next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += quote;\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n token.value = value.slice(pos + 1, next);\n token.sourceEndIndex = token.unclosed ? next : next + 1;\n tokens.push(token);\n pos = next + 1;\n code = value.charCodeAt(pos);\n\n // Comments\n } else if (code === slash && value.charCodeAt(pos + 1) === star) {\n next = value.indexOf(\"*/\", pos);\n\n token = {\n type: \"comment\",\n sourceIndex: pos,\n sourceEndIndex: next + 2\n };\n\n if (next === -1) {\n token.unclosed = true;\n next = value.length;\n token.sourceEndIndex = next;\n }\n\n token.value = value.slice(pos + 2, next);\n tokens.push(token);\n\n pos = next + 2;\n code = value.charCodeAt(pos);\n\n // Operation within calc\n } else if (\n (code === slash || code === star) &&\n parent &&\n parent.type === \"function\" &&\n parent.value === \"calc\"\n ) {\n token = value[pos];\n tokens.push({\n type: \"word\",\n sourceIndex: pos - before.length,\n sourceEndIndex: pos + token.length,\n value: token\n });\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Dividers\n } else if (code === slash || code === comma || code === colon) {\n token = value[pos];\n\n tokens.push({\n type: \"div\",\n sourceIndex: pos - before.length,\n sourceEndIndex: pos + token.length,\n value: token,\n before: before,\n after: \"\"\n });\n before = \"\";\n\n pos += 1;\n code = value.charCodeAt(pos);\n\n // Open parentheses\n } else if (openParentheses === code) {\n // Whitespaces after open parentheses\n next = pos;\n do {\n next += 1;\n code = value.charCodeAt(next);\n } while (code <= 32);\n parenthesesOpenPos = pos;\n token = {\n type: \"function\",\n sourceIndex: pos - name.length,\n value: name,\n before: value.slice(parenthesesOpenPos + 1, next)\n };\n pos = next;\n\n if (name === \"url\" && code !== singleQuote && code !== doubleQuote) {\n next -= 1;\n do {\n escape = false;\n next = value.indexOf(\")\", next + 1);\n if (~next) {\n escapePos = next;\n while (value.charCodeAt(escapePos - 1) === backslash) {\n escapePos -= 1;\n escape = !escape;\n }\n } else {\n value += \")\";\n next = value.length - 1;\n token.unclosed = true;\n }\n } while (escape);\n // Whitespaces before closed\n whitespacePos = next;\n do {\n whitespacePos -= 1;\n code = value.charCodeAt(whitespacePos);\n } while (code <= 32);\n if (parenthesesOpenPos < whitespacePos) {\n if (pos !== whitespacePos + 1) {\n token.nodes = [\n {\n type: \"word\",\n sourceIndex: pos,\n sourceEndIndex: whitespacePos + 1,\n value: value.slice(pos, whitespacePos + 1)\n }\n ];\n } else {\n token.nodes = [];\n }\n if (token.unclosed && whitespacePos + 1 !== next) {\n token.after = \"\";\n token.nodes.push({\n type: \"space\",\n sourceIndex: whitespacePos + 1,\n sourceEndIndex: next,\n value: value.slice(whitespacePos + 1, next)\n });\n } else {\n token.after = value.slice(whitespacePos + 1, next);\n token.sourceEndIndex = next;\n }\n } else {\n token.after = \"\";\n token.nodes = [];\n }\n pos = next + 1;\n token.sourceEndIndex = token.unclosed ? next : pos;\n code = value.charCodeAt(pos);\n tokens.push(token);\n } else {\n balanced += 1;\n token.after = \"\";\n token.sourceEndIndex = pos + 1;\n tokens.push(token);\n stack.push(token);\n tokens = token.nodes = [];\n parent = token;\n }\n name = \"\";\n\n // Close parentheses\n } else if (closeParentheses === code && balanced) {\n pos += 1;\n code = value.charCodeAt(pos);\n\n parent.after = after;\n parent.sourceEndIndex += after.length;\n after = \"\";\n balanced -= 1;\n stack[stack.length - 1].sourceEndIndex = pos;\n stack.pop();\n parent = stack[balanced];\n tokens = parent.nodes;\n\n // Words\n } else {\n next = pos;\n do {\n if (code === backslash) {\n next += 1;\n }\n next += 1;\n code = value.charCodeAt(next);\n } while (\n next < max &&\n !(\n code <= 32 ||\n code === singleQuote ||\n code === doubleQuote ||\n code === comma ||\n code === colon ||\n code === slash ||\n code === openParentheses ||\n (code === star &&\n parent &&\n parent.type === \"function\" &&\n parent.value === \"calc\") ||\n (code === slash &&\n parent.type === \"function\" &&\n parent.value === \"calc\") ||\n (code === closeParentheses && balanced)\n )\n );\n token = value.slice(pos, next);\n\n if (openParentheses === code) {\n name = token;\n } else if (\n (uLower === token.charCodeAt(0) || uUpper === token.charCodeAt(0)) &&\n plus === token.charCodeAt(1) &&\n isUnicodeRange.test(token.slice(2))\n ) {\n tokens.push({\n type: \"unicode-range\",\n sourceIndex: pos,\n sourceEndIndex: next,\n value: token\n });\n } else {\n tokens.push({\n type: \"word\",\n sourceIndex: pos,\n sourceEndIndex: next,\n value: token\n });\n }\n\n pos = next;\n }\n }\n\n for (pos = stack.length - 1; pos; pos -= 1) {\n stack[pos].unclosed = true;\n stack[pos].sourceEndIndex = value.length;\n }\n\n return stack[0].nodes;\n};\n","module.exports = function walk(nodes, cb, bubble) {\n var i, max, node, result;\n\n for (i = 0, max = nodes.length; i < max; i += 1) {\n node = nodes[i];\n if (!bubble) {\n result = cb(node, i, nodes);\n }\n\n if (\n result !== false &&\n node.type === \"function\" &&\n Array.isArray(node.nodes)\n ) {\n walk(node.nodes, cb, bubble);\n }\n\n if (bubble) {\n cb(node, i, nodes);\n }\n }\n};\n","function stringifyNode(node, custom) {\n var type = node.type;\n var value = node.value;\n var buf;\n var customResult;\n\n if (custom && (customResult = custom(node)) !== undefined) {\n return customResult;\n } else if (type === \"word\" || type === \"space\") {\n return value;\n } else if (type === \"string\") {\n buf = node.quote || \"\";\n return buf + value + (node.unclosed ? \"\" : buf);\n } else if (type === \"comment\") {\n return \"/*\" + value + (node.unclosed ? \"\" : \"*/\");\n } else if (type === \"div\") {\n return (node.before || \"\") + value + (node.after || \"\");\n } else if (Array.isArray(node.nodes)) {\n buf = stringify(node.nodes, custom);\n if (type !== \"function\") {\n return buf;\n }\n return (\n value +\n \"(\" +\n (node.before || \"\") +\n buf +\n (node.after || \"\") +\n (node.unclosed ? \"\" : \")\")\n );\n }\n return value;\n}\n\nfunction stringify(nodes, custom) {\n var result, i;\n\n if (Array.isArray(nodes)) {\n result = \"\";\n for (i = nodes.length - 1; ~i; i -= 1) {\n result = stringifyNode(nodes[i], custom) + result;\n }\n return result;\n }\n return stringifyNode(nodes, custom);\n}\n\nmodule.exports = stringify;\n","var minus = \"-\".charCodeAt(0);\nvar plus = \"+\".charCodeAt(0);\nvar dot = \".\".charCodeAt(0);\nvar exp = \"e\".charCodeAt(0);\nvar EXP = \"E\".charCodeAt(0);\n\n// Check if three code points would start a number\n// https://www.w3.org/TR/css-syntax-3/#starts-with-a-number\nfunction likeNumber(value) {\n var code = value.charCodeAt(0);\n var nextCode;\n\n if (code === plus || code === minus) {\n nextCode = value.charCodeAt(1);\n\n if (nextCode >= 48 && nextCode <= 57) {\n return true;\n }\n\n var nextNextCode = value.charCodeAt(2);\n\n if (nextCode === dot && nextNextCode >= 48 && nextNextCode <= 57) {\n return true;\n }\n\n return false;\n }\n\n if (code === dot) {\n nextCode = value.charCodeAt(1);\n\n if (nextCode >= 48 && nextCode <= 57) {\n return true;\n }\n\n return false;\n }\n\n if (code >= 48 && code <= 57) {\n return true;\n }\n\n return false;\n}\n\n// Consume a number\n// https://www.w3.org/TR/css-syntax-3/#consume-number\nmodule.exports = function(value) {\n var pos = 0;\n var length = value.length;\n var code;\n var nextCode;\n var nextNextCode;\n\n if (length === 0 || !likeNumber(value)) {\n return false;\n }\n\n code = value.charCodeAt(pos);\n\n if (code === plus || code === minus) {\n pos++;\n }\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code < 48 || code > 57) {\n break;\n }\n\n pos += 1;\n }\n\n code = value.charCodeAt(pos);\n nextCode = value.charCodeAt(pos + 1);\n\n if (code === dot && nextCode >= 48 && nextCode <= 57) {\n pos += 2;\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code < 48 || code > 57) {\n break;\n }\n\n pos += 1;\n }\n }\n\n code = value.charCodeAt(pos);\n nextCode = value.charCodeAt(pos + 1);\n nextNextCode = value.charCodeAt(pos + 2);\n\n if (\n (code === exp || code === EXP) &&\n ((nextCode >= 48 && nextCode <= 57) ||\n ((nextCode === plus || nextCode === minus) &&\n nextNextCode >= 48 &&\n nextNextCode <= 57))\n ) {\n pos += nextCode === plus || nextCode === minus ? 3 : 2;\n\n while (pos < length) {\n code = value.charCodeAt(pos);\n\n if (code < 48 || code > 57) {\n break;\n }\n\n pos += 1;\n }\n }\n\n return {\n number: value.slice(0, pos),\n unit: value.slice(pos)\n };\n};\n","module.exports = function(obj) {\n if (typeof obj === 'string') return camelCase(obj);\n return walk(obj);\n};\n\nfunction walk (obj) {\n if (!obj || typeof obj !== 'object') return obj;\n if (isDate(obj) || isRegex(obj)) return obj;\n if (isArray(obj)) return map(obj, walk);\n return reduce(objectKeys(obj), function (acc, key) {\n var camel = camelCase(key);\n acc[camel] = walk(obj[key]);\n return acc;\n }, {});\n}\n\nfunction camelCase(str) {\n return str.replace(/[_.-](\\w|$)/g, function (_,x) {\n return x.toUpperCase();\n });\n}\n\nvar isArray = Array.isArray || function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n};\n\nvar isDate = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Date]';\n};\n\nvar isRegex = function (obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar has = Object.prototype.hasOwnProperty;\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n if (has.call(obj, key)) keys.push(key);\n }\n return keys;\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nfunction reduce (xs, f, acc) {\n if (xs.reduce) return xs.reduce(f, acc);\n for (var i = 0; i < xs.length; i++) {\n acc = f(acc, xs[i], i);\n }\n return acc;\n}\n","'use strict'\n\nmodule.exports = require('./colors.json')\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v17.0.2\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=60103,c=60106,d=60107,e=60108,f=60114,g=60109,h=60110,k=60112,l=60113,m=60120,n=60115,p=60116,q=60121,r=60122,u=60117,v=60129,w=60131;\nif(\"function\"===typeof Symbol&&Symbol.for){var x=Symbol.for;b=x(\"react.element\");c=x(\"react.portal\");d=x(\"react.fragment\");e=x(\"react.strict_mode\");f=x(\"react.profiler\");g=x(\"react.provider\");h=x(\"react.context\");k=x(\"react.forward_ref\");l=x(\"react.suspense\");m=x(\"react.suspense_list\");n=x(\"react.memo\");p=x(\"react.lazy\");q=x(\"react.block\");r=x(\"react.server.block\");u=x(\"react.fundamental\");v=x(\"react.debug_trace_mode\");w=x(\"react.legacy_hidden\")}\nfunction y(a){if(\"object\"===typeof a&&null!==a){var t=a.$$typeof;switch(t){case b:switch(a=a.type,a){case d:case f:case e:case l:case m:return a;default:switch(a=a&&a.$$typeof,a){case h:case k:case p:case n:case g:return a;default:return t}}case c:return t}}}var z=g,A=b,B=k,C=d,D=p,E=n,F=c,G=f,H=e,I=l;exports.ContextConsumer=h;exports.ContextProvider=z;exports.Element=A;exports.ForwardRef=B;exports.Fragment=C;exports.Lazy=D;exports.Memo=E;exports.Portal=F;exports.Profiler=G;exports.StrictMode=H;\nexports.Suspense=I;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return y(a)===h};exports.isContextProvider=function(a){return y(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return y(a)===k};exports.isFragment=function(a){return y(a)===d};exports.isLazy=function(a){return y(a)===p};exports.isMemo=function(a){return y(a)===n};\nexports.isPortal=function(a){return y(a)===c};exports.isProfiler=function(a){return y(a)===f};exports.isStrictMode=function(a){return y(a)===e};exports.isSuspense=function(a){return y(a)===l};exports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===v||a===e||a===l||a===m||a===w||\"object\"===typeof a&&null!==a&&(a.$$typeof===p||a.$$typeof===n||a.$$typeof===g||a.$$typeof===h||a.$$typeof===k||a.$$typeof===u||a.$$typeof===q||a[0]===r)?!0:!1};\nexports.typeOf=y;\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","function stylis_min (W) {\n function M(d, c, e, h, a) {\n for (var m = 0, b = 0, v = 0, n = 0, q, g, x = 0, K = 0, k, u = k = q = 0, l = 0, r = 0, I = 0, t = 0, B = e.length, J = B - 1, y, f = '', p = '', F = '', G = '', C; l < B;) {\n g = e.charCodeAt(l);\n l === J && 0 !== b + n + v + m && (0 !== b && (g = 47 === b ? 10 : 47), n = v = m = 0, B++, J++);\n\n if (0 === b + n + v + m) {\n if (l === J && (0 < r && (f = f.replace(N, '')), 0 < f.trim().length)) {\n switch (g) {\n case 32:\n case 9:\n case 59:\n case 13:\n case 10:\n break;\n\n default:\n f += e.charAt(l);\n }\n\n g = 59;\n }\n\n switch (g) {\n case 123:\n f = f.trim();\n q = f.charCodeAt(0);\n k = 1;\n\n for (t = ++l; l < B;) {\n switch (g = e.charCodeAt(l)) {\n case 123:\n k++;\n break;\n\n case 125:\n k--;\n break;\n\n case 47:\n switch (g = e.charCodeAt(l + 1)) {\n case 42:\n case 47:\n a: {\n for (u = l + 1; u < J; ++u) {\n switch (e.charCodeAt(u)) {\n case 47:\n if (42 === g && 42 === e.charCodeAt(u - 1) && l + 2 !== u) {\n l = u + 1;\n break a;\n }\n\n break;\n\n case 10:\n if (47 === g) {\n l = u + 1;\n break a;\n }\n\n }\n }\n\n l = u;\n }\n\n }\n\n break;\n\n case 91:\n g++;\n\n case 40:\n g++;\n\n case 34:\n case 39:\n for (; l++ < J && e.charCodeAt(l) !== g;) {\n }\n\n }\n\n if (0 === k) break;\n l++;\n }\n\n k = e.substring(t, l);\n 0 === q && (q = (f = f.replace(ca, '').trim()).charCodeAt(0));\n\n switch (q) {\n case 64:\n 0 < r && (f = f.replace(N, ''));\n g = f.charCodeAt(1);\n\n switch (g) {\n case 100:\n case 109:\n case 115:\n case 45:\n r = c;\n break;\n\n default:\n r = O;\n }\n\n k = M(c, r, k, g, a + 1);\n t = k.length;\n 0 < A && (r = X(O, f, I), C = H(3, k, r, c, D, z, t, g, a, h), f = r.join(''), void 0 !== C && 0 === (t = (k = C.trim()).length) && (g = 0, k = ''));\n if (0 < t) switch (g) {\n case 115:\n f = f.replace(da, ea);\n\n case 100:\n case 109:\n case 45:\n k = f + '{' + k + '}';\n break;\n\n case 107:\n f = f.replace(fa, '$1 $2');\n k = f + '{' + k + '}';\n k = 1 === w || 2 === w && L('@' + k, 3) ? '@-webkit-' + k + '@' + k : '@' + k;\n break;\n\n default:\n k = f + k, 112 === h && (k = (p += k, ''));\n } else k = '';\n break;\n\n default:\n k = M(c, X(c, f, I), k, h, a + 1);\n }\n\n F += k;\n k = I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n break;\n\n case 125:\n case 59:\n f = (0 < r ? f.replace(N, '') : f).trim();\n if (1 < (t = f.length)) switch (0 === u && (q = f.charCodeAt(0), 45 === q || 96 < q && 123 > q) && (t = (f = f.replace(' ', ':')).length), 0 < A && void 0 !== (C = H(1, f, c, d, D, z, p.length, h, a, h)) && 0 === (t = (f = C.trim()).length) && (f = '\\x00\\x00'), q = f.charCodeAt(0), g = f.charCodeAt(1), q) {\n case 0:\n break;\n\n case 64:\n if (105 === g || 99 === g) {\n G += f + e.charAt(l);\n break;\n }\n\n default:\n 58 !== f.charCodeAt(t - 1) && (p += P(f, q, g, f.charCodeAt(2)));\n }\n I = r = u = q = 0;\n f = '';\n g = e.charCodeAt(++l);\n }\n }\n\n switch (g) {\n case 13:\n case 10:\n 47 === b ? b = 0 : 0 === 1 + q && 107 !== h && 0 < f.length && (r = 1, f += '\\x00');\n 0 < A * Y && H(0, f, c, d, D, z, p.length, h, a, h);\n z = 1;\n D++;\n break;\n\n case 59:\n case 125:\n if (0 === b + n + v + m) {\n z++;\n break;\n }\n\n default:\n z++;\n y = e.charAt(l);\n\n switch (g) {\n case 9:\n case 32:\n if (0 === n + m + b) switch (x) {\n case 44:\n case 58:\n case 9:\n case 32:\n y = '';\n break;\n\n default:\n 32 !== g && (y = ' ');\n }\n break;\n\n case 0:\n y = '\\\\0';\n break;\n\n case 12:\n y = '\\\\f';\n break;\n\n case 11:\n y = '\\\\v';\n break;\n\n case 38:\n 0 === n + b + m && (r = I = 1, y = '\\f' + y);\n break;\n\n case 108:\n if (0 === n + b + m + E && 0 < u) switch (l - u) {\n case 2:\n 112 === x && 58 === e.charCodeAt(l - 3) && (E = x);\n\n case 8:\n 111 === K && (E = K);\n }\n break;\n\n case 58:\n 0 === n + b + m && (u = l);\n break;\n\n case 44:\n 0 === b + v + n + m && (r = 1, y += '\\r');\n break;\n\n case 34:\n case 39:\n 0 === b && (n = n === g ? 0 : 0 === n ? g : n);\n break;\n\n case 91:\n 0 === n + b + v && m++;\n break;\n\n case 93:\n 0 === n + b + v && m--;\n break;\n\n case 41:\n 0 === n + b + m && v--;\n break;\n\n case 40:\n if (0 === n + b + m) {\n if (0 === q) switch (2 * x + 3 * K) {\n case 533:\n break;\n\n default:\n q = 1;\n }\n v++;\n }\n\n break;\n\n case 64:\n 0 === b + v + n + m + u + k && (k = 1);\n break;\n\n case 42:\n case 47:\n if (!(0 < n + m + v)) switch (b) {\n case 0:\n switch (2 * g + 3 * e.charCodeAt(l + 1)) {\n case 235:\n b = 47;\n break;\n\n case 220:\n t = l, b = 42;\n }\n\n break;\n\n case 42:\n 47 === g && 42 === x && t + 2 !== l && (33 === e.charCodeAt(t + 2) && (p += e.substring(t, l + 1)), y = '', b = 0);\n }\n }\n\n 0 === b && (f += y);\n }\n\n K = x;\n x = g;\n l++;\n }\n\n t = p.length;\n\n if (0 < t) {\n r = c;\n if (0 < A && (C = H(2, p, r, d, D, z, t, h, a, h), void 0 !== C && 0 === (p = C).length)) return G + p + F;\n p = r.join(',') + '{' + p + '}';\n\n if (0 !== w * E) {\n 2 !== w || L(p, 2) || (E = 0);\n\n switch (E) {\n case 111:\n p = p.replace(ha, ':-moz-$1') + p;\n break;\n\n case 112:\n p = p.replace(Q, '::-webkit-input-$1') + p.replace(Q, '::-moz-$1') + p.replace(Q, ':-ms-input-$1') + p;\n }\n\n E = 0;\n }\n }\n\n return G + p + F;\n }\n\n function X(d, c, e) {\n var h = c.trim().split(ia);\n c = h;\n var a = h.length,\n m = d.length;\n\n switch (m) {\n case 0:\n case 1:\n var b = 0;\n\n for (d = 0 === m ? '' : d[0] + ' '; b < a; ++b) {\n c[b] = Z(d, c[b], e).trim();\n }\n\n break;\n\n default:\n var v = b = 0;\n\n for (c = []; b < a; ++b) {\n for (var n = 0; n < m; ++n) {\n c[v++] = Z(d[n] + ' ', h[b], e).trim();\n }\n }\n\n }\n\n return c;\n }\n\n function Z(d, c, e) {\n var h = c.charCodeAt(0);\n 33 > h && (h = (c = c.trim()).charCodeAt(0));\n\n switch (h) {\n case 38:\n return c.replace(F, '$1' + d.trim());\n\n case 58:\n return d.trim() + c.replace(F, '$1' + d.trim());\n\n default:\n if (0 < 1 * e && 0 < c.indexOf('\\f')) return c.replace(F, (58 === d.charCodeAt(0) ? '' : '$1') + d.trim());\n }\n\n return d + c;\n }\n\n function P(d, c, e, h) {\n var a = d + ';',\n m = 2 * c + 3 * e + 4 * h;\n\n if (944 === m) {\n d = a.indexOf(':', 9) + 1;\n var b = a.substring(d, a.length - 1).trim();\n b = a.substring(0, d).trim() + b + ';';\n return 1 === w || 2 === w && L(b, 1) ? '-webkit-' + b + b : b;\n }\n\n if (0 === w || 2 === w && !L(a, 1)) return a;\n\n switch (m) {\n case 1015:\n return 97 === a.charCodeAt(10) ? '-webkit-' + a + a : a;\n\n case 951:\n return 116 === a.charCodeAt(3) ? '-webkit-' + a + a : a;\n\n case 963:\n return 110 === a.charCodeAt(5) ? '-webkit-' + a + a : a;\n\n case 1009:\n if (100 !== a.charCodeAt(4)) break;\n\n case 969:\n case 942:\n return '-webkit-' + a + a;\n\n case 978:\n return '-webkit-' + a + '-moz-' + a + a;\n\n case 1019:\n case 983:\n return '-webkit-' + a + '-moz-' + a + '-ms-' + a + a;\n\n case 883:\n if (45 === a.charCodeAt(8)) return '-webkit-' + a + a;\n if (0 < a.indexOf('image-set(', 11)) return a.replace(ja, '$1-webkit-$2') + a;\n break;\n\n case 932:\n if (45 === a.charCodeAt(4)) switch (a.charCodeAt(5)) {\n case 103:\n return '-webkit-box-' + a.replace('-grow', '') + '-webkit-' + a + '-ms-' + a.replace('grow', 'positive') + a;\n\n case 115:\n return '-webkit-' + a + '-ms-' + a.replace('shrink', 'negative') + a;\n\n case 98:\n return '-webkit-' + a + '-ms-' + a.replace('basis', 'preferred-size') + a;\n }\n return '-webkit-' + a + '-ms-' + a + a;\n\n case 964:\n return '-webkit-' + a + '-ms-flex-' + a + a;\n\n case 1023:\n if (99 !== a.charCodeAt(8)) break;\n b = a.substring(a.indexOf(':', 15)).replace('flex-', '').replace('space-between', 'justify');\n return '-webkit-box-pack' + b + '-webkit-' + a + '-ms-flex-pack' + b + a;\n\n case 1005:\n return ka.test(a) ? a.replace(aa, ':-webkit-') + a.replace(aa, ':-moz-') + a : a;\n\n case 1e3:\n b = a.substring(13).trim();\n c = b.indexOf('-') + 1;\n\n switch (b.charCodeAt(0) + b.charCodeAt(c)) {\n case 226:\n b = a.replace(G, 'tb');\n break;\n\n case 232:\n b = a.replace(G, 'tb-rl');\n break;\n\n case 220:\n b = a.replace(G, 'lr');\n break;\n\n default:\n return a;\n }\n\n return '-webkit-' + a + '-ms-' + b + a;\n\n case 1017:\n if (-1 === a.indexOf('sticky', 9)) break;\n\n case 975:\n c = (a = d).length - 10;\n b = (33 === a.charCodeAt(c) ? a.substring(0, c) : a).substring(d.indexOf(':', 7) + 1).trim();\n\n switch (m = b.charCodeAt(0) + (b.charCodeAt(7) | 0)) {\n case 203:\n if (111 > b.charCodeAt(8)) break;\n\n case 115:\n a = a.replace(b, '-webkit-' + b) + ';' + a;\n break;\n\n case 207:\n case 102:\n a = a.replace(b, '-webkit-' + (102 < m ? 'inline-' : '') + 'box') + ';' + a.replace(b, '-webkit-' + b) + ';' + a.replace(b, '-ms-' + b + 'box') + ';' + a;\n }\n\n return a + ';';\n\n case 938:\n if (45 === a.charCodeAt(5)) switch (a.charCodeAt(6)) {\n case 105:\n return b = a.replace('-items', ''), '-webkit-' + a + '-webkit-box-' + b + '-ms-flex-' + b + a;\n\n case 115:\n return '-webkit-' + a + '-ms-flex-item-' + a.replace(ba, '') + a;\n\n default:\n return '-webkit-' + a + '-ms-flex-line-pack' + a.replace('align-content', '').replace(ba, '') + a;\n }\n break;\n\n case 973:\n case 989:\n if (45 !== a.charCodeAt(3) || 122 === a.charCodeAt(4)) break;\n\n case 931:\n case 953:\n if (!0 === la.test(d)) return 115 === (b = d.substring(d.indexOf(':') + 1)).charCodeAt(0) ? P(d.replace('stretch', 'fill-available'), c, e, h).replace(':fill-available', ':stretch') : a.replace(b, '-webkit-' + b) + a.replace(b, '-moz-' + b.replace('fill-', '')) + a;\n break;\n\n case 962:\n if (a = '-webkit-' + a + (102 === a.charCodeAt(5) ? '-ms-' + a : '') + a, 211 === e + h && 105 === a.charCodeAt(13) && 0 < a.indexOf('transform', 10)) return a.substring(0, a.indexOf(';', 27) + 1).replace(ma, '$1-webkit-$2') + a;\n }\n\n return a;\n }\n\n function L(d, c) {\n var e = d.indexOf(1 === c ? ':' : '{'),\n h = d.substring(0, 3 !== c ? e : 10);\n e = d.substring(e + 1, d.length - 1);\n return R(2 !== c ? h : h.replace(na, '$1'), e, c);\n }\n\n function ea(d, c) {\n var e = P(c, c.charCodeAt(0), c.charCodeAt(1), c.charCodeAt(2));\n return e !== c + ';' ? e.replace(oa, ' or ($1)').substring(4) : '(' + c + ')';\n }\n\n function H(d, c, e, h, a, m, b, v, n, q) {\n for (var g = 0, x = c, w; g < A; ++g) {\n switch (w = S[g].call(B, d, x, e, h, a, m, b, v, n, q)) {\n case void 0:\n case !1:\n case !0:\n case null:\n break;\n\n default:\n x = w;\n }\n }\n\n if (x !== c) return x;\n }\n\n function T(d) {\n switch (d) {\n case void 0:\n case null:\n A = S.length = 0;\n break;\n\n default:\n if ('function' === typeof d) S[A++] = d;else if ('object' === typeof d) for (var c = 0, e = d.length; c < e; ++c) {\n T(d[c]);\n } else Y = !!d | 0;\n }\n\n return T;\n }\n\n function U(d) {\n d = d.prefix;\n void 0 !== d && (R = null, d ? 'function' !== typeof d ? w = 1 : (w = 2, R = d) : w = 0);\n return U;\n }\n\n function B(d, c) {\n var e = d;\n 33 > e.charCodeAt(0) && (e = e.trim());\n V = e;\n e = [V];\n\n if (0 < A) {\n var h = H(-1, c, e, e, D, z, 0, 0, 0, 0);\n void 0 !== h && 'string' === typeof h && (c = h);\n }\n\n var a = M(O, e, c, 0, 0);\n 0 < A && (h = H(-2, a, e, e, D, z, a.length, 0, 0, 0), void 0 !== h && (a = h));\n V = '';\n E = 0;\n z = D = 1;\n return a;\n }\n\n var ca = /^\\0+/g,\n N = /[\\0\\r\\f]/g,\n aa = /: */g,\n ka = /zoo|gra/,\n ma = /([,: ])(transform)/g,\n ia = /,\\r+?/g,\n F = /([\\t\\r\\n ])*\\f?&/g,\n fa = /@(k\\w+)\\s*(\\S*)\\s*/,\n Q = /::(place)/g,\n ha = /:(read-only)/g,\n G = /[svh]\\w+-[tblr]{2}/,\n da = /\\(\\s*(.*)\\s*\\)/g,\n oa = /([\\s\\S]*?);/g,\n ba = /-self|flex-/g,\n na = /[^]*?(:[rp][el]a[\\w-]+)[^]*/,\n la = /stretch|:\\s*\\w+\\-(?:conte|avail)/,\n ja = /([^-])(image-set\\()/,\n z = 1,\n D = 1,\n E = 0,\n w = 1,\n O = [],\n S = [],\n A = 0,\n R = null,\n Y = 0,\n V = '';\n B.use = T;\n B.set = U;\n void 0 !== W && U(W);\n return B;\n}\n\nexport default stylis_min;\n","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport default unitlessKeys;\n","'use strict';\nmodule.exports = {\n\tstdout: false,\n\tstderr: false\n};\n","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nvar UAParser = require('ua-parser-js/dist/ua-parser.min');\n\nvar UA = new UAParser();\nvar browser = UA.getBrowser();\nvar cpu = UA.getCPU();\nvar device = UA.getDevice();\nvar engine = UA.getEngine();\nvar os = UA.getOS();\nvar ua = UA.getUA();\n\nvar setDefaults = function setDefaults(p) {\n var d = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n return p ? p : d;\n};\nvar getNavigatorInstance = function getNavigatorInstance() {\n if (typeof window !== 'undefined') {\n if (window.navigator || navigator) {\n return window.navigator || navigator;\n }\n }\n\n return false;\n};\nvar isIOS13Check = function isIOS13Check(type) {\n var nav = getNavigatorInstance();\n return nav && nav.platform && (nav.platform.indexOf(type) !== -1 || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1 && !window.MSStream);\n};\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(source, true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(source).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nvar DeviceTypes = {\n Mobile: 'mobile',\n Tablet: 'tablet',\n SmartTv: 'smarttv',\n Console: 'console',\n Wearable: 'wearable',\n Browser: undefined\n};\nvar BrowserTypes = {\n Chrome: 'Chrome',\n Firefox: \"Firefox\",\n Opera: \"Opera\",\n Yandex: \"Yandex\",\n Safari: \"Safari\",\n InternetExplorer: \"Internet Explorer\",\n Edge: \"Edge\",\n Chromium: \"Chromium\",\n Ie: 'IE',\n MobileSafari: \"Mobile Safari\",\n EdgeChromium: \"Edge Chromium\",\n MIUI: \"MIUI Browser\",\n SamsungBrowser: 'Samsung Browser'\n};\nvar OsTypes = {\n IOS: 'iOS',\n Android: \"Android\",\n WindowsPhone: \"Windows Phone\",\n Windows: 'Windows',\n MAC_OS: 'Mac OS'\n};\nvar initialData = {\n isMobile: false,\n isTablet: false,\n isBrowser: false,\n isSmartTV: false,\n isConsole: false,\n isWearable: false\n};\nvar checkType = function checkType(type) {\n switch (type) {\n case DeviceTypes.Mobile:\n return {\n isMobile: true\n };\n\n case DeviceTypes.Tablet:\n return {\n isTablet: true\n };\n\n case DeviceTypes.SmartTv:\n return {\n isSmartTV: true\n };\n\n case DeviceTypes.Console:\n return {\n isConsole: true\n };\n\n case DeviceTypes.Wearable:\n return {\n isWearable: true\n };\n\n case DeviceTypes.Browser:\n return {\n isBrowser: true\n };\n\n default:\n return initialData;\n }\n};\nvar broPayload = function broPayload(isBrowser, browser, engine, os, ua) {\n return {\n isBrowser: isBrowser,\n browserMajorVersion: setDefaults(browser.major),\n browserFullVersion: setDefaults(browser.version),\n browserName: setDefaults(browser.name),\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar mobilePayload = function mobilePayload(type, device, os, ua) {\n return _objectSpread2({}, type, {\n vendor: setDefaults(device.vendor),\n model: setDefaults(device.model),\n os: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n ua: setDefaults(ua)\n });\n};\nvar stvPayload = function stvPayload(isSmartTV, engine, os, ua) {\n return {\n isSmartTV: isSmartTV,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar consolePayload = function consolePayload(isConsole, engine, os, ua) {\n return {\n isConsole: isConsole,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\nvar wearPayload = function wearPayload(isWearable, engine, os, ua) {\n return {\n isWearable: isWearable,\n engineName: setDefaults(engine.name),\n engineVersion: setDefaults(engine.version),\n osName: setDefaults(os.name),\n osVersion: setDefaults(os.version),\n userAgent: setDefaults(ua)\n };\n};\n\nvar type = checkType(device.type);\n\nfunction deviceDetect() {\n var isBrowser = type.isBrowser,\n isMobile = type.isMobile,\n isTablet = type.isTablet,\n isSmartTV = type.isSmartTV,\n isConsole = type.isConsole,\n isWearable = type.isWearable;\n\n if (isBrowser) {\n return broPayload(isBrowser, browser, engine, os, ua);\n }\n\n if (isSmartTV) {\n return stvPayload(isSmartTV, engine, os, ua);\n }\n\n if (isConsole) {\n return consolePayload(isConsole, engine, os, ua);\n }\n\n if (isMobile) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isTablet) {\n return mobilePayload(type, device, os, ua);\n }\n\n if (isWearable) {\n return wearPayload(isWearable, engine, os, ua);\n }\n}\n\nvar isMobileType = function isMobileType() {\n return device.type === DeviceTypes.Mobile;\n};\n\nvar isTabletType = function isTabletType() {\n return device.type === DeviceTypes.Tablet;\n};\n\nvar isMobileAndTabletType = function isMobileAndTabletType() {\n switch (device.type) {\n case DeviceTypes.Mobile:\n case DeviceTypes.Tablet:\n return true;\n\n default:\n return false;\n }\n};\n\nvar isEdgeChromiumType = function isEdgeChromiumType() {\n return typeof ua === 'string' && ua.indexOf('Edg/') !== -1;\n};\n\nvar isSmartTVType = function isSmartTVType() {\n return device.type === DeviceTypes.SmartTv;\n};\n\nvar isBrowserType = function isBrowserType() {\n return device.type === DeviceTypes.Browser;\n};\n\nvar isWearableType = function isWearableType() {\n return device.type === DeviceTypes.Wearable;\n};\n\nvar isConsoleType = function isConsoleType() {\n return device.type === DeviceTypes.Console;\n};\n\nvar isAndroidType = function isAndroidType() {\n return os.name === OsTypes.Android;\n};\n\nvar isWindowsType = function isWindowsType() {\n return os.name === OsTypes.Windows;\n};\n\nvar isMacOsType = function isMacOsType() {\n return os.name === OsTypes.MAC_OS;\n};\n\nvar isWinPhoneType = function isWinPhoneType() {\n return os.name === OsTypes.WindowsPhone;\n};\n\nvar isIOSType = function isIOSType() {\n return os.name === OsTypes.IOS;\n};\n\nvar isChromeType = function isChromeType() {\n return browser.name === BrowserTypes.Chrome;\n};\n\nvar isFirefoxType = function isFirefoxType() {\n return browser.name === BrowserTypes.Firefox;\n};\n\nvar isChromiumType = function isChromiumType() {\n return browser.name === BrowserTypes.Chromium;\n};\n\nvar isEdgeType = function isEdgeType() {\n return browser.name === BrowserTypes.Edge;\n};\n\nvar isYandexType = function isYandexType() {\n return browser.name === BrowserTypes.Yandex;\n};\n\nvar isSafariType = function isSafariType() {\n return browser.name === BrowserTypes.Safari || browser.name === BrowserTypes.MobileSafari;\n};\n\nvar isMobileSafariType = function isMobileSafariType() {\n return browser.name === BrowserTypes.MobileSafari;\n};\n\nvar isOperaType = function isOperaType() {\n return browser.name === BrowserTypes.Opera;\n};\n\nvar isIEType = function isIEType() {\n return browser.name === BrowserTypes.InternetExplorer || browser.name === BrowserTypes.Ie;\n};\n\nvar isMIUIType = function isMIUIType() {\n return browser.name === BrowserTypes.MIUI;\n};\n\nvar isSamsungBrowserType = function isSamsungBrowserType() {\n return browser.name === BrowserTypes.SamsungBrowser;\n};\n\nvar isElectronType = function isElectronType() {\n var nav = getNavigatorInstance();\n var ua = nav && nav.userAgent && nav.userAgent.toLowerCase();\n return typeof ua === 'string' ? /electron/.test(ua) : false;\n};\n\nvar getIOS13 = function getIOS13() {\n var nav = getNavigatorInstance();\n return nav && (/iPad|iPhone|iPod/.test(nav.platform) || nav.platform === 'MacIntel' && nav.maxTouchPoints > 1) && !window.MSStream;\n};\n\nvar getIPad13 = function getIPad13() {\n return isIOS13Check('iPad');\n};\n\nvar getIphone13 = function getIphone13() {\n return isIOS13Check('iPhone');\n};\n\nvar getIPod13 = function getIPod13() {\n return isIOS13Check('iPod');\n};\n\nvar getBrowserFullVersion = function getBrowserFullVersion() {\n return setDefaults(browser.version);\n};\n\nvar getBrowserVersion = function getBrowserVersion() {\n return setDefaults(browser.major);\n};\n\nvar getOsVersion = function getOsVersion() {\n return setDefaults(os.version);\n};\n\nvar getOsName = function getOsName() {\n return setDefaults(os.name);\n};\n\nvar getBrowserName = function getBrowserName() {\n return setDefaults(browser.name);\n};\n\nvar getMobileVendor = function getMobileVendor() {\n return setDefaults(device.vendor);\n};\n\nvar getMobileModel = function getMobileModel() {\n return setDefaults(device.model);\n};\n\nvar getEngineName = function getEngineName() {\n return setDefaults(engine.name);\n};\n\nvar getEngineVersion = function getEngineVersion() {\n return setDefaults(engine.version);\n};\n\nvar getUseragent = function getUseragent() {\n return setDefaults(ua);\n};\n\nvar getDeviceType = function getDeviceType() {\n return setDefaults(device.type, 'browser');\n};\n\nvar isSmartTV = isSmartTVType();\nvar isConsole = isConsoleType();\nvar isWearable = isWearableType();\nvar isMobileSafari = isMobileSafariType() || getIPad13();\nvar isChromium = isChromiumType();\nvar isMobile = isMobileAndTabletType() || getIPad13();\nvar isMobileOnly = isMobileType();\nvar isTablet = isTabletType() || getIPad13();\nvar isBrowser = isBrowserType();\nvar isDesktop = isBrowserType();\nvar isAndroid = isAndroidType();\nvar isWinPhone = isWinPhoneType();\nvar isIOS = isIOSType() || getIPad13();\nvar isChrome = isChromeType();\nvar isFirefox = isFirefoxType();\nvar isSafari = isSafariType();\nvar isOpera = isOperaType();\nvar isIE = isIEType();\nvar osVersion = getOsVersion();\nvar osName = getOsName();\nvar fullBrowserVersion = getBrowserFullVersion();\nvar browserVersion = getBrowserVersion();\nvar browserName = getBrowserName();\nvar mobileVendor = getMobileVendor();\nvar mobileModel = getMobileModel();\nvar engineName = getEngineName();\nvar engineVersion = getEngineVersion();\nvar getUA = getUseragent();\nvar isEdge = isEdgeType() || isEdgeChromiumType();\nvar isYandex = isYandexType();\nvar deviceType = getDeviceType();\nvar isIOS13 = getIOS13();\nvar isIPad13 = getIPad13();\nvar isIPhone13 = getIphone13();\nvar isIPod13 = getIPod13();\nvar isElectron = isElectronType();\nvar isEdgeChromium = isEdgeChromiumType();\nvar isLegacyEdge = isEdgeType() && !isEdgeChromiumType();\nvar isWindows = isWindowsType();\nvar isMacOs = isMacOsType();\nvar isMIUI = isMIUIType();\nvar isSamsungBrowser = isSamsungBrowserType();\n\nvar AndroidView = function AndroidView(_ref) {\n var renderWithFragment = _ref.renderWithFragment,\n children = _ref.children,\n viewClassName = _ref.viewClassName,\n style = _ref.style,\n props = _objectWithoutProperties(_ref, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isAndroid ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar BrowserView = function BrowserView(_ref2) {\n var renderWithFragment = _ref2.renderWithFragment,\n children = _ref2.children,\n viewClassName = _ref2.viewClassName,\n style = _ref2.style,\n props = _objectWithoutProperties(_ref2, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isBrowser ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar IEView = function IEView(_ref3) {\n var renderWithFragment = _ref3.renderWithFragment,\n children = _ref3.children,\n viewClassName = _ref3.viewClassName,\n style = _ref3.style,\n props = _objectWithoutProperties(_ref3, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isIE ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar IOSView = function IOSView(_ref4) {\n var renderWithFragment = _ref4.renderWithFragment,\n children = _ref4.children,\n viewClassName = _ref4.viewClassName,\n style = _ref4.style,\n props = _objectWithoutProperties(_ref4, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isIOS ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar MobileView = function MobileView(_ref5) {\n var renderWithFragment = _ref5.renderWithFragment,\n children = _ref5.children,\n viewClassName = _ref5.viewClassName,\n style = _ref5.style,\n props = _objectWithoutProperties(_ref5, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobile ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar TabletView = function TabletView(_ref6) {\n var renderWithFragment = _ref6.renderWithFragment,\n children = _ref6.children,\n viewClassName = _ref6.viewClassName,\n style = _ref6.style,\n props = _objectWithoutProperties(_ref6, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isTablet ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar WinPhoneView = function WinPhoneView(_ref7) {\n var renderWithFragment = _ref7.renderWithFragment,\n children = _ref7.children,\n viewClassName = _ref7.viewClassName,\n style = _ref7.style,\n props = _objectWithoutProperties(_ref7, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isWinPhone ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar MobileOnlyView = function MobileOnlyView(_ref8) {\n var renderWithFragment = _ref8.renderWithFragment,\n children = _ref8.children,\n viewClassName = _ref8.viewClassName,\n style = _ref8.style,\n props = _objectWithoutProperties(_ref8, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isMobileOnly ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar SmartTVView = function SmartTVView(_ref9) {\n var renderWithFragment = _ref9.renderWithFragment,\n children = _ref9.children,\n viewClassName = _ref9.viewClassName,\n style = _ref9.style,\n props = _objectWithoutProperties(_ref9, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isSmartTV ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar ConsoleView = function ConsoleView(_ref10) {\n var renderWithFragment = _ref10.renderWithFragment,\n children = _ref10.children,\n viewClassName = _ref10.viewClassName,\n style = _ref10.style,\n props = _objectWithoutProperties(_ref10, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isConsole ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar WearableView = function WearableView(_ref11) {\n var renderWithFragment = _ref11.renderWithFragment,\n children = _ref11.children,\n viewClassName = _ref11.viewClassName,\n style = _ref11.style,\n props = _objectWithoutProperties(_ref11, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\"]);\n\n return isWearable ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\nvar CustomView = function CustomView(_ref12) {\n var renderWithFragment = _ref12.renderWithFragment,\n children = _ref12.children,\n viewClassName = _ref12.viewClassName,\n style = _ref12.style,\n condition = _ref12.condition,\n props = _objectWithoutProperties(_ref12, [\"renderWithFragment\", \"children\", \"viewClassName\", \"style\", \"condition\"]);\n\n return condition ? renderWithFragment ? React__default.createElement(React.Fragment, null, children) : React__default.createElement(\"div\", _extends({\n className: viewClassName,\n style: style\n }, props), children) : null;\n};\n\nfunction withOrientationChange(WrappedComponent) {\n return (\n /*#__PURE__*/\n function (_React$Component) {\n _inherits(_class, _React$Component);\n\n function _class(props) {\n var _this;\n\n _classCallCheck(this, _class);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_class).call(this, props));\n _this.isEventListenerAdded = false;\n _this.handleOrientationChange = _this.handleOrientationChange.bind(_assertThisInitialized(_this));\n _this.onOrientationChange = _this.onOrientationChange.bind(_assertThisInitialized(_this));\n _this.onPageLoad = _this.onPageLoad.bind(_assertThisInitialized(_this));\n _this.state = {\n isLandscape: false,\n isPortrait: false\n };\n return _this;\n }\n\n _createClass(_class, [{\n key: \"handleOrientationChange\",\n value: function handleOrientationChange() {\n if (!this.isEventListenerAdded) {\n this.isEventListenerAdded = true;\n }\n\n var orientation = window.innerWidth > window.innerHeight ? 90 : 0;\n this.setState({\n isPortrait: orientation === 0,\n isLandscape: orientation === 90\n });\n }\n }, {\n key: \"onOrientationChange\",\n value: function onOrientationChange() {\n this.handleOrientationChange();\n }\n }, {\n key: \"onPageLoad\",\n value: function onPageLoad() {\n this.handleOrientationChange();\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) !== undefined && isMobile) {\n if (!this.isEventListenerAdded) {\n this.handleOrientationChange();\n window.addEventListener(\"load\", this.onPageLoad, false);\n } else {\n window.removeEventListener(\"load\", this.onPageLoad, false);\n }\n\n window.addEventListener(\"resize\", this.onOrientationChange, false);\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n window.removeEventListener(\"resize\", this.onOrientationChange, false);\n }\n }, {\n key: \"render\",\n value: function render() {\n return React__default.createElement(WrappedComponent, _extends({}, this.props, {\n isLandscape: this.state.isLandscape,\n isPortrait: this.state.isPortrait\n }));\n }\n }]);\n\n return _class;\n }(React__default.Component)\n );\n}\n\nexports.AndroidView = AndroidView;\nexports.BrowserTypes = BrowserTypes;\nexports.BrowserView = BrowserView;\nexports.ConsoleView = ConsoleView;\nexports.CustomView = CustomView;\nexports.IEView = IEView;\nexports.IOSView = IOSView;\nexports.MobileOnlyView = MobileOnlyView;\nexports.MobileView = MobileView;\nexports.OsTypes = OsTypes;\nexports.SmartTVView = SmartTVView;\nexports.TabletView = TabletView;\nexports.WearableView = WearableView;\nexports.WinPhoneView = WinPhoneView;\nexports.browserName = browserName;\nexports.browserVersion = browserVersion;\nexports.deviceDetect = deviceDetect;\nexports.deviceType = deviceType;\nexports.engineName = engineName;\nexports.engineVersion = engineVersion;\nexports.fullBrowserVersion = fullBrowserVersion;\nexports.getUA = getUA;\nexports.isAndroid = isAndroid;\nexports.isBrowser = isBrowser;\nexports.isChrome = isChrome;\nexports.isChromium = isChromium;\nexports.isConsole = isConsole;\nexports.isDesktop = isDesktop;\nexports.isEdge = isEdge;\nexports.isEdgeChromium = isEdgeChromium;\nexports.isElectron = isElectron;\nexports.isFirefox = isFirefox;\nexports.isIE = isIE;\nexports.isIOS = isIOS;\nexports.isIOS13 = isIOS13;\nexports.isIPad13 = isIPad13;\nexports.isIPhone13 = isIPhone13;\nexports.isIPod13 = isIPod13;\nexports.isLegacyEdge = isLegacyEdge;\nexports.isMIUI = isMIUI;\nexports.isMacOs = isMacOs;\nexports.isMobile = isMobile;\nexports.isMobileOnly = isMobileOnly;\nexports.isMobileSafari = isMobileSafari;\nexports.isOpera = isOpera;\nexports.isSafari = isSafari;\nexports.isSamsungBrowser = isSamsungBrowser;\nexports.isSmartTV = isSmartTV;\nexports.isTablet = isTablet;\nexports.isWearable = isWearable;\nexports.isWinPhone = isWinPhone;\nexports.isWindows = isWindows;\nexports.isYandex = isYandex;\nexports.mobileModel = mobileModel;\nexports.mobileVendor = mobileVendor;\nexports.osName = osName;\nexports.osVersion = osVersion;\nexports.withOrientationChange = withOrientationChange;\n","/* UAParser.js v0.7.33\n Copyright © 2012-2021 Faisal Salman \n MIT License */\n(function(window,undefined){\"use strict\";var LIBVERSION=\"0.7.33\",EMPTY=\"\",UNKNOWN=\"?\",FUNC_TYPE=\"function\",UNDEF_TYPE=\"undefined\",OBJ_TYPE=\"object\",STR_TYPE=\"string\",MAJOR=\"major\",MODEL=\"model\",NAME=\"name\",TYPE=\"type\",VENDOR=\"vendor\",VERSION=\"version\",ARCHITECTURE=\"architecture\",CONSOLE=\"console\",MOBILE=\"mobile\",TABLET=\"tablet\",SMARTTV=\"smarttv\",WEARABLE=\"wearable\",EMBEDDED=\"embedded\",UA_MAX_LENGTH=350;var AMAZON=\"Amazon\",APPLE=\"Apple\",ASUS=\"ASUS\",BLACKBERRY=\"BlackBerry\",BROWSER=\"Browser\",CHROME=\"Chrome\",EDGE=\"Edge\",FIREFOX=\"Firefox\",GOOGLE=\"Google\",HUAWEI=\"Huawei\",LG=\"LG\",MICROSOFT=\"Microsoft\",MOTOROLA=\"Motorola\",OPERA=\"Opera\",SAMSUNG=\"Samsung\",SHARP=\"Sharp\",SONY=\"Sony\",XIAOMI=\"Xiaomi\",ZEBRA=\"Zebra\",FACEBOOK=\"Facebook\";var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i])}else{mergedRegexes[i]=regexes[i]}}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{this[q]=match?match:undefined}}}}i+=2}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;jUA_MAX_LENGTH?trim(ua,UA_MAX_LENGTH):ua;return this};this.setUA(_ua);return this};UAParser.VERSION=LIBVERSION;UAParser.BROWSER=enumerize([NAME,VERSION,MAJOR]);UAParser.CPU=enumerize([ARCHITECTURE]);UAParser.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]);UAParser.ENGINE=UAParser.OS=enumerize([NAME,VERSION]);if(typeof exports!==UNDEF_TYPE){if(typeof module!==UNDEF_TYPE&&module.exports){exports=module.exports=UAParser}exports.UAParser=UAParser}else{if(typeof define===FUNC_TYPE&&define.amd){define(function(){return UAParser})}else if(typeof window!==UNDEF_TYPE){window.UAParser=UAParser}}var $=typeof window!==UNDEF_TYPE&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop]}}}})(typeof window===\"object\"?window:this);","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _slider = _interopRequireDefault(require(\"./slider\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar _default = _slider[\"default\"];\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _innerSlider = require(\"./inner-slider\");\n\nvar _json2mq = _interopRequireDefault(require(\"json2mq\"));\n\nvar _defaultProps = _interopRequireDefault(require(\"./default-props\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar enquire = (0, _innerSliderUtils.canUseDOM)() && require(\"enquire.js\");\n\nvar Slider = /*#__PURE__*/function (_React$Component) {\n _inherits(Slider, _React$Component);\n\n var _super = _createSuper(Slider);\n\n function Slider(props) {\n var _this;\n\n _classCallCheck(this, Slider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"innerSliderRefHandler\", function (ref) {\n return _this.innerSlider = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n return _this.innerSlider.slickPrev();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n return _this.innerSlider.slickNext();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return _this.innerSlider.slickGoTo(slide, dontAnimate);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPause\", function () {\n return _this.innerSlider.pause(\"paused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPlay\", function () {\n return _this.innerSlider.autoPlay(\"play\");\n });\n\n _this.state = {\n breakpoint: null\n };\n _this._responsiveMediaHandlers = [];\n return _this;\n }\n\n _createClass(Slider, [{\n key: \"media\",\n value: function media(query, handler) {\n // javascript handler for css media query\n enquire.register(query, handler);\n\n this._responsiveMediaHandlers.push({\n query: query,\n handler: handler\n });\n } // handles responsive breakpoints\n\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n var _this2 = this;\n\n // performance monitoring\n //if (process.env.NODE_ENV !== 'production') {\n //const { whyDidYouUpdate } = require('why-did-you-update')\n //whyDidYouUpdate(React)\n //}\n if (this.props.responsive) {\n var breakpoints = this.props.responsive.map(function (breakpt) {\n return breakpt.breakpoint;\n }); // sort them in increasing order of their numerical value\n\n breakpoints.sort(function (x, y) {\n return x - y;\n });\n breakpoints.forEach(function (breakpoint, index) {\n // media query for each breakpoint\n var bQuery;\n\n if (index === 0) {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: 0,\n maxWidth: breakpoint\n });\n } else {\n bQuery = (0, _json2mq[\"default\"])({\n minWidth: breakpoints[index - 1] + 1,\n maxWidth: breakpoint\n });\n } // when not using server side rendering\n\n\n (0, _innerSliderUtils.canUseDOM)() && _this2.media(bQuery, function () {\n _this2.setState({\n breakpoint: breakpoint\n });\n });\n }); // Register media query for full screen. Need to support resize from small to large\n // convert javascript object to media query string\n\n var query = (0, _json2mq[\"default\"])({\n minWidth: breakpoints.slice(-1)[0]\n });\n (0, _innerSliderUtils.canUseDOM)() && this.media(query, function () {\n _this2.setState({\n breakpoint: null\n });\n });\n }\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._responsiveMediaHandlers.forEach(function (obj) {\n enquire.unregister(obj.query, obj.handler);\n });\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this3 = this;\n\n var settings;\n var newProps;\n\n if (this.state.breakpoint) {\n newProps = this.props.responsive.filter(function (resp) {\n return resp.breakpoint === _this3.state.breakpoint;\n });\n settings = newProps[0].settings === \"unslick\" ? \"unslick\" : _objectSpread(_objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props), newProps[0].settings);\n } else {\n settings = _objectSpread(_objectSpread({}, _defaultProps[\"default\"]), this.props);\n } // force scrolling by one if centerMode is on\n\n\n if (settings.centerMode) {\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 in centerMode, you are using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToScroll = 1;\n } // force showing one slide and scrolling by one if the fade mode is on\n\n\n if (settings.fade) {\n if (settings.slidesToShow > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToShow should be equal to 1 when fade is true, you're using \".concat(settings.slidesToShow));\n }\n\n if (settings.slidesToScroll > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"slidesToScroll should be equal to 1 when fade is true, you're using \".concat(settings.slidesToScroll));\n }\n\n settings.slidesToShow = 1;\n settings.slidesToScroll = 1;\n } // makes sure that children is an array, even when there is only 1 child\n\n\n var children = _react[\"default\"].Children.toArray(this.props.children); // Children may contain false or null, so we should filter them\n // children may also contain string filled with spaces (in certain cases where we use jsx strings)\n\n\n children = children.filter(function (child) {\n if (typeof child === \"string\") {\n return !!child.trim();\n }\n\n return !!child;\n }); // rows and slidesPerRow logic is handled here\n\n if (settings.variableWidth && (settings.rows > 1 || settings.slidesPerRow > 1)) {\n console.warn(\"variableWidth is not supported in case of rows > 1 or slidesPerRow > 1\");\n settings.variableWidth = false;\n }\n\n var newChildren = [];\n var currentWidth = null;\n\n for (var i = 0; i < children.length; i += settings.rows * settings.slidesPerRow) {\n var newSlide = [];\n\n for (var j = i; j < i + settings.rows * settings.slidesPerRow; j += settings.slidesPerRow) {\n var row = [];\n\n for (var k = j; k < j + settings.slidesPerRow; k += 1) {\n if (settings.variableWidth && children[k].props.style) {\n currentWidth = children[k].props.style.width;\n }\n\n if (k >= children.length) break;\n row.push( /*#__PURE__*/_react[\"default\"].cloneElement(children[k], {\n key: 100 * i + 10 * j + k,\n tabIndex: -1,\n style: {\n width: \"\".concat(100 / settings.slidesPerRow, \"%\"),\n display: \"inline-block\"\n }\n }));\n }\n\n newSlide.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: 10 * i + j\n }, row));\n }\n\n if (settings.variableWidth) {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i,\n style: {\n width: currentWidth\n }\n }, newSlide));\n } else {\n newChildren.push( /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n key: i\n }, newSlide));\n }\n }\n\n if (settings === \"unslick\") {\n var className = \"regular slider \" + (this.props.className || \"\");\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n className: className\n }, children);\n } else if (newChildren.length <= settings.slidesToShow) {\n settings.unslick = true;\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(_innerSlider.InnerSlider, _extends({\n style: this.props.style,\n ref: this.innerSliderRefHandler\n }, settings), newChildren);\n }\n }]);\n\n return Slider;\n}(_react[\"default\"].Component);\n\nexports[\"default\"] = Slider;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.InnerSlider = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _initialState = _interopRequireDefault(require(\"./initial-state\"));\n\nvar _lodash = _interopRequireDefault(require(\"lodash.debounce\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nvar _track = require(\"./track\");\n\nvar _dots = require(\"./dots\");\n\nvar _arrows = require(\"./arrows\");\n\nvar _resizeObserverPolyfill = _interopRequireDefault(require(\"resize-observer-polyfill\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar InnerSlider = /*#__PURE__*/function (_React$Component) {\n _inherits(InnerSlider, _React$Component);\n\n var _super = _createSuper(InnerSlider);\n\n function InnerSlider(props) {\n var _this;\n\n _classCallCheck(this, InnerSlider);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), \"listRefHandler\", function (ref) {\n return _this.list = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"trackRefHandler\", function (ref) {\n return _this.track = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"adaptHeight\", function () {\n if (_this.props.adaptiveHeight && _this.list) {\n var elem = _this.list.querySelector(\"[data-index=\\\"\".concat(_this.state.currentSlide, \"\\\"]\"));\n\n _this.list.style.height = (0, _innerSliderUtils.getHeight)(elem) + \"px\";\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidMount\", function () {\n _this.props.onInit && _this.props.onInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n }\n\n var spec = _objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props);\n\n _this.updateState(spec, true, function () {\n _this.adaptHeight();\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n });\n\n if (_this.props.lazyLoad === \"progressive\") {\n _this.lazyLoadTimer = setInterval(_this.progressiveLazyLoad, 1000);\n }\n\n _this.ro = new _resizeObserverPolyfill[\"default\"](function () {\n if (_this.state.animating) {\n _this.onWindowResized(false); // don't set trackStyle hence don't break animation\n\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.onWindowResized();\n }, _this.props.speed));\n } else {\n _this.onWindowResized();\n }\n });\n\n _this.ro.observe(_this.list);\n\n document.querySelectorAll && Array.prototype.forEach.call(document.querySelectorAll(\".slick-slide\"), function (slide) {\n slide.onfocus = _this.props.pauseOnFocus ? _this.onSlideFocus : null;\n slide.onblur = _this.props.pauseOnFocus ? _this.onSlideBlur : null;\n });\n\n if (window.addEventListener) {\n window.addEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.attachEvent(\"onresize\", _this.onWindowResized);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentWillUnmount\", function () {\n if (_this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n }\n\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n }\n\n if (_this.callbackTimers.length) {\n _this.callbackTimers.forEach(function (timer) {\n return clearTimeout(timer);\n });\n\n _this.callbackTimers = [];\n }\n\n if (window.addEventListener) {\n window.removeEventListener(\"resize\", _this.onWindowResized);\n } else {\n window.detachEvent(\"onresize\", _this.onWindowResized);\n }\n\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n _this.ro.disconnect();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"componentDidUpdate\", function (prevProps) {\n _this.checkImagesLoad();\n\n _this.props.onReInit && _this.props.onReInit();\n\n if (_this.props.lazyLoad) {\n var slidesToLoad = (0, _innerSliderUtils.getOnDemandLazySlides)(_objectSpread(_objectSpread({}, _this.props), _this.state));\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (prevState) {\n return {\n lazyLoadedList: prevState.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n }\n } // if (this.props.onLazyLoad) {\n // this.props.onLazyLoad([leftMostSlide])\n // }\n\n\n _this.adaptHeight();\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n var setTrackStyle = _this.didPropsChange(prevProps);\n\n setTrackStyle && _this.updateState(spec, setTrackStyle, function () {\n if (_this.state.currentSlide >= _react[\"default\"].Children.count(_this.props.children)) {\n _this.changeSlide({\n message: \"index\",\n index: _react[\"default\"].Children.count(_this.props.children) - _this.props.slidesToShow,\n currentSlide: _this.state.currentSlide\n });\n }\n\n if (_this.props.autoplay) {\n _this.autoPlay(\"update\");\n } else {\n _this.pause(\"paused\");\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onWindowResized\", function (setTrackStyle) {\n if (_this.debouncedResize) _this.debouncedResize.cancel();\n _this.debouncedResize = (0, _lodash[\"default\"])(function () {\n return _this.resizeWindow(setTrackStyle);\n }, 50);\n\n _this.debouncedResize();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"resizeWindow\", function () {\n var setTrackStyle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var isTrackMounted = Boolean(_this.track && _this.track.node); // prevent warning: setting state on unmounted component (server side rendering)\n\n if (!isTrackMounted) return;\n\n var spec = _objectSpread(_objectSpread({\n listRef: _this.list,\n trackRef: _this.track\n }, _this.props), _this.state);\n\n _this.updateState(spec, setTrackStyle, function () {\n if (_this.props.autoplay) _this.autoPlay(\"update\");else _this.pause(\"paused\");\n }); // animating state should be cleared while resizing, otherwise autoplay stops working\n\n\n _this.setState({\n animating: false\n });\n\n clearTimeout(_this.animationEndCallback);\n delete _this.animationEndCallback;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updateState\", function (spec, setTrackStyle, callback) {\n var updatedState = (0, _innerSliderUtils.initializedState)(spec);\n spec = _objectSpread(_objectSpread(_objectSpread({}, spec), updatedState), {}, {\n slideIndex: updatedState.currentSlide\n });\n var targetLeft = (0, _innerSliderUtils.getTrackLeft)(spec);\n spec = _objectSpread(_objectSpread({}, spec), {}, {\n left: targetLeft\n });\n var trackStyle = (0, _innerSliderUtils.getTrackCSS)(spec);\n\n if (setTrackStyle || _react[\"default\"].Children.count(_this.props.children) !== _react[\"default\"].Children.count(spec.children)) {\n updatedState[\"trackStyle\"] = trackStyle;\n }\n\n _this.setState(updatedState, callback);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"ssrInit\", function () {\n if (_this.props.variableWidth) {\n var _trackWidth = 0,\n _trackLeft = 0;\n var childrenWidths = [];\n var preClones = (0, _innerSliderUtils.getPreClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n var postClones = (0, _innerSliderUtils.getPostClones)(_objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: _this.props.children.length\n }));\n\n _this.props.children.forEach(function (child) {\n childrenWidths.push(child.props.style.width);\n _trackWidth += child.props.style.width;\n });\n\n for (var i = 0; i < preClones; i++) {\n _trackLeft += childrenWidths[childrenWidths.length - 1 - i];\n _trackWidth += childrenWidths[childrenWidths.length - 1 - i];\n }\n\n for (var _i = 0; _i < postClones; _i++) {\n _trackWidth += childrenWidths[_i];\n }\n\n for (var _i2 = 0; _i2 < _this.state.currentSlide; _i2++) {\n _trackLeft += childrenWidths[_i2];\n }\n\n var _trackStyle = {\n width: _trackWidth + \"px\",\n left: -_trackLeft + \"px\"\n };\n\n if (_this.props.centerMode) {\n var currentWidth = \"\".concat(childrenWidths[_this.state.currentSlide], \"px\");\n _trackStyle.left = \"calc(\".concat(_trackStyle.left, \" + (100% - \").concat(currentWidth, \") / 2 ) \");\n }\n\n return {\n trackStyle: _trackStyle\n };\n }\n\n var childrenCount = _react[\"default\"].Children.count(_this.props.children);\n\n var spec = _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n slideCount: childrenCount\n });\n\n var slideCount = (0, _innerSliderUtils.getPreClones)(spec) + (0, _innerSliderUtils.getPostClones)(spec) + childrenCount;\n var trackWidth = 100 / _this.props.slidesToShow * slideCount;\n var slideWidth = 100 / slideCount;\n var trackLeft = -slideWidth * ((0, _innerSliderUtils.getPreClones)(spec) + _this.state.currentSlide) * trackWidth / 100;\n\n if (_this.props.centerMode) {\n trackLeft += (100 - slideWidth * trackWidth / 100) / 2;\n }\n\n var trackStyle = {\n width: trackWidth + \"%\",\n left: trackLeft + \"%\"\n };\n return {\n slideWidth: slideWidth + \"%\",\n trackStyle: trackStyle\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), \"checkImagesLoad\", function () {\n var images = _this.list.querySelectorAll && _this.list.querySelectorAll(\".slick-slide img\") || [];\n var imagesCount = images.length,\n loadedCount = 0;\n Array.prototype.forEach.call(images, function (image) {\n var handler = function handler() {\n return ++loadedCount && loadedCount >= imagesCount && _this.onWindowResized();\n };\n\n if (!image.onclick) {\n image.onclick = function () {\n return image.parentNode.focus();\n };\n } else {\n var prevClickHandler = image.onclick;\n\n image.onclick = function () {\n prevClickHandler();\n image.parentNode.focus();\n };\n }\n\n if (!image.onload) {\n if (_this.props.lazyLoad) {\n image.onload = function () {\n _this.adaptHeight();\n\n _this.callbackTimers.push(setTimeout(_this.onWindowResized, _this.props.speed));\n };\n } else {\n image.onload = handler;\n\n image.onerror = function () {\n handler();\n _this.props.onLazyLoadError && _this.props.onLazyLoadError();\n };\n }\n }\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"progressiveLazyLoad\", function () {\n var slidesToLoad = [];\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n for (var index = _this.state.currentSlide; index < _this.state.slideCount + (0, _innerSliderUtils.getPostClones)(spec); index++) {\n if (_this.state.lazyLoadedList.indexOf(index) < 0) {\n slidesToLoad.push(index);\n break;\n }\n }\n\n for (var _index = _this.state.currentSlide - 1; _index >= -(0, _innerSliderUtils.getPreClones)(spec); _index--) {\n if (_this.state.lazyLoadedList.indexOf(_index) < 0) {\n slidesToLoad.push(_index);\n break;\n }\n }\n\n if (slidesToLoad.length > 0) {\n _this.setState(function (state) {\n return {\n lazyLoadedList: state.lazyLoadedList.concat(slidesToLoad)\n };\n });\n\n if (_this.props.onLazyLoad) {\n _this.props.onLazyLoad(slidesToLoad);\n }\n } else {\n if (_this.lazyLoadTimer) {\n clearInterval(_this.lazyLoadTimer);\n delete _this.lazyLoadTimer;\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slideHandler\", function (index) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var _this$props = _this.props,\n asNavFor = _this$props.asNavFor,\n beforeChange = _this$props.beforeChange,\n onLazyLoad = _this$props.onLazyLoad,\n speed = _this$props.speed,\n afterChange = _this$props.afterChange; // capture currentslide before state is updated\n\n var currentSlide = _this.state.currentSlide;\n\n var _slideHandler = (0, _innerSliderUtils.slideHandler)(_objectSpread(_objectSpread(_objectSpread({\n index: index\n }, _this.props), _this.state), {}, {\n trackRef: _this.track,\n useCSS: _this.props.useCSS && !dontAnimate\n })),\n state = _slideHandler.state,\n nextState = _slideHandler.nextState;\n\n if (!state) return;\n beforeChange && beforeChange(currentSlide, state.currentSlide);\n var slidesToLoad = state.lazyLoadedList.filter(function (value) {\n return _this.state.lazyLoadedList.indexOf(value) < 0;\n });\n onLazyLoad && slidesToLoad.length > 0 && onLazyLoad(slidesToLoad);\n\n if (!_this.props.waitForAnimate && _this.animationEndCallback) {\n clearTimeout(_this.animationEndCallback);\n afterChange && afterChange(currentSlide);\n delete _this.animationEndCallback;\n }\n\n _this.setState(state, function () {\n // asNavForIndex check is to avoid recursive calls of slideHandler in waitForAnimate=false mode\n if (asNavFor && _this.asNavForIndex !== index) {\n _this.asNavForIndex = index;\n asNavFor.innerSlider.slideHandler(index);\n }\n\n if (!nextState) return;\n _this.animationEndCallback = setTimeout(function () {\n var animating = nextState.animating,\n firstBatch = _objectWithoutProperties(nextState, [\"animating\"]);\n\n _this.setState(firstBatch, function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.setState({\n animating: animating\n });\n }, 10));\n\n afterChange && afterChange(state.currentSlide);\n delete _this.animationEndCallback;\n });\n }, speed);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"changeSlide\", function (options) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var targetSlide = (0, _innerSliderUtils.changeSlide)(spec, options);\n if (targetSlide !== 0 && !targetSlide) return;\n\n if (dontAnimate === true) {\n _this.slideHandler(targetSlide, dontAnimate);\n } else {\n _this.slideHandler(targetSlide);\n }\n\n _this.props.autoplay && _this.autoPlay(\"update\");\n\n if (_this.props.focusOnSelect) {\n var nodes = _this.list.querySelectorAll(\".slick-current\");\n\n nodes[0] && nodes[0].focus();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"clickHandler\", function (e) {\n if (_this.clickable === false) {\n e.stopPropagation();\n e.preventDefault();\n }\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"keyHandler\", function (e) {\n var dir = (0, _innerSliderUtils.keyHandler)(e, _this.props.accessibility, _this.props.rtl);\n dir !== \"\" && _this.changeSlide({\n message: dir\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"selectHandler\", function (options) {\n _this.changeSlide(options);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"disableBodyScroll\", function () {\n var preventDefault = function preventDefault(e) {\n e = e || window.event;\n if (e.preventDefault) e.preventDefault();\n e.returnValue = false;\n };\n\n window.ontouchmove = preventDefault;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"enableBodyScroll\", function () {\n window.ontouchmove = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeStart\", function (e) {\n if (_this.props.verticalSwiping) {\n _this.disableBodyScroll();\n }\n\n var state = (0, _innerSliderUtils.swipeStart)(e, _this.props.swipe, _this.props.draggable);\n state !== \"\" && _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeMove\", function (e) {\n var state = (0, _innerSliderUtils.swipeMove)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n\n if (state[\"swiping\"]) {\n _this.clickable = false;\n }\n\n _this.setState(state);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"swipeEnd\", function (e) {\n var state = (0, _innerSliderUtils.swipeEnd)(e, _objectSpread(_objectSpread(_objectSpread({}, _this.props), _this.state), {}, {\n trackRef: _this.track,\n listRef: _this.list,\n slideIndex: _this.state.currentSlide\n }));\n if (!state) return;\n var triggerSlideHandler = state[\"triggerSlideHandler\"];\n delete state[\"triggerSlideHandler\"];\n\n _this.setState(state);\n\n if (triggerSlideHandler === undefined) return;\n\n _this.slideHandler(triggerSlideHandler);\n\n if (_this.props.verticalSwiping) {\n _this.enableBodyScroll();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"touchEnd\", function (e) {\n _this.swipeEnd(e);\n\n _this.clickable = true;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickPrev\", function () {\n // this and fellow methods are wrapped in setTimeout\n // to make sure initialize setState has happened before\n // any of such methods are called\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"previous\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickNext\", function () {\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"next\"\n });\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"slickGoTo\", function (slide) {\n var dontAnimate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n slide = Number(slide);\n if (isNaN(slide)) return \"\";\n\n _this.callbackTimers.push(setTimeout(function () {\n return _this.changeSlide({\n message: \"index\",\n index: slide,\n currentSlide: _this.state.currentSlide\n }, dontAnimate);\n }, 0));\n });\n\n _defineProperty(_assertThisInitialized(_this), \"play\", function () {\n var nextIndex;\n\n if (_this.props.rtl) {\n nextIndex = _this.state.currentSlide - _this.props.slidesToScroll;\n } else {\n if ((0, _innerSliderUtils.canGoNext)(_objectSpread(_objectSpread({}, _this.props), _this.state))) {\n nextIndex = _this.state.currentSlide + _this.props.slidesToScroll;\n } else {\n return false;\n }\n }\n\n _this.slideHandler(nextIndex);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"autoPlay\", function (playType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (playType === \"update\") {\n if (autoplaying === \"hovered\" || autoplaying === \"focused\" || autoplaying === \"paused\") {\n return;\n }\n } else if (playType === \"leave\") {\n if (autoplaying === \"paused\" || autoplaying === \"focused\") {\n return;\n }\n } else if (playType === \"blur\") {\n if (autoplaying === \"paused\" || autoplaying === \"hovered\") {\n return;\n }\n }\n\n _this.autoplayTimer = setInterval(_this.play, _this.props.autoplaySpeed + 50);\n\n _this.setState({\n autoplaying: \"playing\"\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"pause\", function (pauseType) {\n if (_this.autoplayTimer) {\n clearInterval(_this.autoplayTimer);\n _this.autoplayTimer = null;\n }\n\n var autoplaying = _this.state.autoplaying;\n\n if (pauseType === \"paused\") {\n _this.setState({\n autoplaying: \"paused\"\n });\n } else if (pauseType === \"focused\") {\n if (autoplaying === \"hovered\" || autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"focused\"\n });\n }\n } else {\n // pauseType is 'hovered'\n if (autoplaying === \"playing\") {\n _this.setState({\n autoplaying: \"hovered\"\n });\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onDotsLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackOver\", function () {\n return _this.props.autoplay && _this.pause(\"hovered\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onTrackLeave\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"hovered\" && _this.autoPlay(\"leave\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideFocus\", function () {\n return _this.props.autoplay && _this.pause(\"focused\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onSlideBlur\", function () {\n return _this.props.autoplay && _this.state.autoplaying === \"focused\" && _this.autoPlay(\"blur\");\n });\n\n _defineProperty(_assertThisInitialized(_this), \"render\", function () {\n var className = (0, _classnames[\"default\"])(\"slick-slider\", _this.props.className, {\n \"slick-vertical\": _this.props.vertical,\n \"slick-initialized\": true\n });\n\n var spec = _objectSpread(_objectSpread({}, _this.props), _this.state);\n\n var trackProps = (0, _innerSliderUtils.extractObject)(spec, [\"fade\", \"cssEase\", \"speed\", \"infinite\", \"centerMode\", \"focusOnSelect\", \"currentSlide\", \"lazyLoad\", \"lazyLoadedList\", \"rtl\", \"slideWidth\", \"slideHeight\", \"listHeight\", \"vertical\", \"slidesToShow\", \"slidesToScroll\", \"slideCount\", \"trackStyle\", \"variableWidth\", \"unslick\", \"centerPadding\", \"targetSlide\", \"useCSS\"]);\n var pauseOnHover = _this.props.pauseOnHover;\n trackProps = _objectSpread(_objectSpread({}, trackProps), {}, {\n onMouseEnter: pauseOnHover ? _this.onTrackOver : null,\n onMouseLeave: pauseOnHover ? _this.onTrackLeave : null,\n onMouseOver: pauseOnHover ? _this.onTrackOver : null,\n focusOnSelect: _this.props.focusOnSelect && _this.clickable ? _this.selectHandler : null\n });\n var dots;\n\n if (_this.props.dots === true && _this.state.slideCount >= _this.props.slidesToShow) {\n var dotProps = (0, _innerSliderUtils.extractObject)(spec, [\"dotsClass\", \"slideCount\", \"slidesToShow\", \"currentSlide\", \"slidesToScroll\", \"clickHandler\", \"children\", \"customPaging\", \"infinite\", \"appendDots\"]);\n var pauseOnDotsHover = _this.props.pauseOnDotsHover;\n dotProps = _objectSpread(_objectSpread({}, dotProps), {}, {\n clickHandler: _this.changeSlide,\n onMouseEnter: pauseOnDotsHover ? _this.onDotsLeave : null,\n onMouseOver: pauseOnDotsHover ? _this.onDotsOver : null,\n onMouseLeave: pauseOnDotsHover ? _this.onDotsLeave : null\n });\n dots = /*#__PURE__*/_react[\"default\"].createElement(_dots.Dots, dotProps);\n }\n\n var prevArrow, nextArrow;\n var arrowProps = (0, _innerSliderUtils.extractObject)(spec, [\"infinite\", \"centerMode\", \"currentSlide\", \"slideCount\", \"slidesToShow\", \"prevArrow\", \"nextArrow\"]);\n arrowProps.clickHandler = _this.changeSlide;\n\n if (_this.props.arrows) {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.PrevArrow, arrowProps);\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(_arrows.NextArrow, arrowProps);\n }\n\n var verticalHeightStyle = null;\n\n if (_this.props.vertical) {\n verticalHeightStyle = {\n height: _this.state.listHeight\n };\n }\n\n var centerPaddingStyle = null;\n\n if (_this.props.vertical === false) {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: \"0px \" + _this.props.centerPadding\n };\n }\n } else {\n if (_this.props.centerMode === true) {\n centerPaddingStyle = {\n padding: _this.props.centerPadding + \" 0px\"\n };\n }\n }\n\n var listStyle = _objectSpread(_objectSpread({}, verticalHeightStyle), centerPaddingStyle);\n\n var touchMove = _this.props.touchMove;\n var listProps = {\n className: \"slick-list\",\n style: listStyle,\n onClick: _this.clickHandler,\n onMouseDown: touchMove ? _this.swipeStart : null,\n onMouseMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onMouseUp: touchMove ? _this.swipeEnd : null,\n onMouseLeave: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onTouchStart: touchMove ? _this.swipeStart : null,\n onTouchMove: _this.state.dragging && touchMove ? _this.swipeMove : null,\n onTouchEnd: touchMove ? _this.touchEnd : null,\n onTouchCancel: _this.state.dragging && touchMove ? _this.swipeEnd : null,\n onKeyDown: _this.props.accessibility ? _this.keyHandler : null\n };\n var innerSliderProps = {\n className: className,\n dir: \"ltr\",\n style: _this.props.style\n };\n\n if (_this.props.unslick) {\n listProps = {\n className: \"slick-list\"\n };\n innerSliderProps = {\n className: className\n };\n }\n\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", innerSliderProps, !_this.props.unslick ? prevArrow : \"\", /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: _this.listRefHandler\n }, listProps), /*#__PURE__*/_react[\"default\"].createElement(_track.Track, _extends({\n ref: _this.trackRefHandler\n }, trackProps), _this.props.children)), !_this.props.unslick ? nextArrow : \"\", !_this.props.unslick ? dots : \"\");\n });\n\n _this.list = null;\n _this.track = null;\n _this.state = _objectSpread(_objectSpread({}, _initialState[\"default\"]), {}, {\n currentSlide: _this.props.initialSlide,\n slideCount: _react[\"default\"].Children.count(_this.props.children)\n });\n _this.callbackTimers = [];\n _this.clickable = true;\n _this.debouncedResize = null;\n\n var ssrState = _this.ssrInit();\n\n _this.state = _objectSpread(_objectSpread({}, _this.state), ssrState);\n return _this;\n }\n\n _createClass(InnerSlider, [{\n key: \"didPropsChange\",\n value: function didPropsChange(prevProps) {\n var setTrackStyle = false;\n\n for (var _i3 = 0, _Object$keys = Object.keys(this.props); _i3 < _Object$keys.length; _i3++) {\n var key = _Object$keys[_i3];\n\n if (!prevProps.hasOwnProperty(key)) {\n setTrackStyle = true;\n break;\n }\n\n if (_typeof(prevProps[key]) === \"object\" || typeof prevProps[key] === \"function\") {\n continue;\n }\n\n if (prevProps[key] !== this.props[key]) {\n setTrackStyle = true;\n break;\n }\n }\n\n return setTrackStyle || _react[\"default\"].Children.count(this.props.children) !== _react[\"default\"].Children.count(prevProps.children);\n }\n }]);\n\n return InnerSlider;\n}(_react[\"default\"].Component);\n\nexports.InnerSlider = InnerSlider;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar initialState = {\n animating: false,\n autoplaying: null,\n currentDirection: 0,\n currentLeft: null,\n currentSlide: 0,\n direction: 1,\n dragging: false,\n edgeDragged: false,\n initialized: false,\n lazyLoadedList: [],\n listHeight: null,\n listWidth: null,\n scrolling: false,\n slideCount: null,\n slideHeight: null,\n slideWidth: null,\n swipeLeft: null,\n swiped: false,\n // used by swipeEvent. differentites between touch and swipe.\n swiping: false,\n touchObject: {\n startX: 0,\n startY: 0,\n curX: 0,\n curY: 0\n },\n trackStyle: {},\n trackWidth: 0,\n targetSlide: 0\n};\nvar _default = initialState;\nexports[\"default\"] = _default;","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = debounce;\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Track = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// given specifications/props for a slide, fetch all the classes that need to be applied to the slide\nvar getSlideClasses = function getSlideClasses(spec) {\n var slickActive, slickCenter, slickCloned;\n var centerOffset, index;\n\n if (spec.rtl) {\n index = spec.slideCount - 1 - spec.index;\n } else {\n index = spec.index;\n }\n\n slickCloned = index < 0 || index >= spec.slideCount;\n\n if (spec.centerMode) {\n centerOffset = Math.floor(spec.slidesToShow / 2);\n slickCenter = (index - spec.currentSlide) % spec.slideCount === 0;\n\n if (index > spec.currentSlide - centerOffset - 1 && index <= spec.currentSlide + centerOffset) {\n slickActive = true;\n }\n } else {\n slickActive = spec.currentSlide <= index && index < spec.currentSlide + spec.slidesToShow;\n }\n\n var focusedSlide;\n\n if (spec.targetSlide < 0) {\n focusedSlide = spec.targetSlide + spec.slideCount;\n } else if (spec.targetSlide >= spec.slideCount) {\n focusedSlide = spec.targetSlide - spec.slideCount;\n } else {\n focusedSlide = spec.targetSlide;\n }\n\n var slickCurrent = index === focusedSlide;\n return {\n \"slick-slide\": true,\n \"slick-active\": slickActive,\n \"slick-center\": slickCenter,\n \"slick-cloned\": slickCloned,\n \"slick-current\": slickCurrent // dubious in case of RTL\n\n };\n};\n\nvar getSlideStyle = function getSlideStyle(spec) {\n var style = {};\n\n if (spec.variableWidth === undefined || spec.variableWidth === false) {\n style.width = spec.slideWidth;\n }\n\n if (spec.fade) {\n style.position = \"relative\";\n\n if (spec.vertical) {\n style.top = -spec.index * parseInt(spec.slideHeight);\n } else {\n style.left = -spec.index * parseInt(spec.slideWidth);\n }\n\n style.opacity = spec.currentSlide === spec.index ? 1 : 0;\n\n if (spec.useCSS) {\n style.transition = \"opacity \" + spec.speed + \"ms \" + spec.cssEase + \", \" + \"visibility \" + spec.speed + \"ms \" + spec.cssEase;\n }\n }\n\n return style;\n};\n\nvar getKey = function getKey(child, fallbackKey) {\n return child.key || fallbackKey;\n};\n\nvar renderSlides = function renderSlides(spec) {\n var key;\n var slides = [];\n var preCloneSlides = [];\n var postCloneSlides = [];\n\n var childrenCount = _react[\"default\"].Children.count(spec.children);\n\n var startIndex = (0, _innerSliderUtils.lazyStartIndex)(spec);\n var endIndex = (0, _innerSliderUtils.lazyEndIndex)(spec);\n\n _react[\"default\"].Children.forEach(spec.children, function (elem, index) {\n var child;\n var childOnClickOptions = {\n message: \"children\",\n index: index,\n slidesToScroll: spec.slidesToScroll,\n currentSlide: spec.currentSlide\n }; // in case of lazyLoad, whether or not we want to fetch the slide\n\n if (!spec.lazyLoad || spec.lazyLoad && spec.lazyLoadedList.indexOf(index) >= 0) {\n child = elem;\n } else {\n child = /*#__PURE__*/_react[\"default\"].createElement(\"div\", null);\n }\n\n var childStyle = getSlideStyle(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n }));\n var slideClass = child.props.className || \"\";\n var slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: index\n })); // push a cloned element of the desired slide\n\n slides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"original\" + getKey(child, index),\n \"data-index\": index,\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n tabIndex: \"-1\",\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({\n outline: \"none\"\n }, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n })); // if slide needs to be precloned or postcloned\n\n if (spec.infinite && spec.fade === false) {\n var preCloneNo = childrenCount - index;\n\n if (preCloneNo <= (0, _innerSliderUtils.getPreClones)(spec) && childrenCount !== spec.slidesToShow) {\n key = -preCloneNo;\n\n if (key >= startIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n preCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"precloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n\n if (childrenCount !== spec.slidesToShow) {\n key = childrenCount + index;\n\n if (key < endIndex) {\n child = elem;\n }\n\n slideClasses = getSlideClasses(_objectSpread(_objectSpread({}, spec), {}, {\n index: key\n }));\n postCloneSlides.push( /*#__PURE__*/_react[\"default\"].cloneElement(child, {\n key: \"postcloned\" + getKey(child, key),\n \"data-index\": key,\n tabIndex: \"-1\",\n className: (0, _classnames[\"default\"])(slideClasses, slideClass),\n \"aria-hidden\": !slideClasses[\"slick-active\"],\n style: _objectSpread(_objectSpread({}, child.props.style || {}), childStyle),\n onClick: function onClick(e) {\n child.props && child.props.onClick && child.props.onClick(e);\n\n if (spec.focusOnSelect) {\n spec.focusOnSelect(childOnClickOptions);\n }\n }\n }));\n }\n }\n });\n\n if (spec.rtl) {\n return preCloneSlides.concat(slides, postCloneSlides).reverse();\n } else {\n return preCloneSlides.concat(slides, postCloneSlides);\n }\n};\n\nvar Track = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Track, _React$PureComponent);\n\n var _super = _createSuper(Track);\n\n function Track() {\n var _this;\n\n _classCallCheck(this, Track);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), \"node\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"handleRef\", function (ref) {\n _this.node = ref;\n });\n\n return _this;\n }\n\n _createClass(Track, [{\n key: \"render\",\n value: function render() {\n var slides = renderSlides(this.props);\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave;\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", _extends({\n ref: this.handleRef,\n className: \"slick-track\",\n style: this.props.trackStyle\n }, mouseEvents), slides);\n }\n }]);\n\n return Track;\n}(_react[\"default\"].PureComponent);\n\nexports.Track = Track;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Dots = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar getDotCount = function getDotCount(spec) {\n var dots;\n\n if (spec.infinite) {\n dots = Math.ceil(spec.slideCount / spec.slidesToScroll);\n } else {\n dots = Math.ceil((spec.slideCount - spec.slidesToShow) / spec.slidesToScroll) + 1;\n }\n\n return dots;\n};\n\nvar Dots = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Dots, _React$PureComponent);\n\n var _super = _createSuper(Dots);\n\n function Dots() {\n _classCallCheck(this, Dots);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(Dots, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n // In Autoplay the focus stays on clicked button even after transition\n // to next slide. That only goes away by click somewhere outside\n e.preventDefault();\n this.props.clickHandler(options);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n onMouseEnter = _this$props.onMouseEnter,\n onMouseOver = _this$props.onMouseOver,\n onMouseLeave = _this$props.onMouseLeave,\n infinite = _this$props.infinite,\n slidesToScroll = _this$props.slidesToScroll,\n slidesToShow = _this$props.slidesToShow,\n slideCount = _this$props.slideCount,\n currentSlide = _this$props.currentSlide;\n var dotCount = getDotCount({\n slideCount: slideCount,\n slidesToScroll: slidesToScroll,\n slidesToShow: slidesToShow,\n infinite: infinite\n });\n var mouseEvents = {\n onMouseEnter: onMouseEnter,\n onMouseOver: onMouseOver,\n onMouseLeave: onMouseLeave\n };\n var dots = [];\n\n for (var i = 0; i < dotCount; i++) {\n var _rightBound = (i + 1) * slidesToScroll - 1;\n\n var rightBound = infinite ? _rightBound : (0, _innerSliderUtils.clamp)(_rightBound, 0, slideCount - 1);\n\n var _leftBound = rightBound - (slidesToScroll - 1);\n\n var leftBound = infinite ? _leftBound : (0, _innerSliderUtils.clamp)(_leftBound, 0, slideCount - 1);\n var className = (0, _classnames[\"default\"])({\n \"slick-active\": infinite ? currentSlide >= leftBound && currentSlide <= rightBound : currentSlide === leftBound\n });\n var dotOptions = {\n message: \"dots\",\n index: i,\n slidesToScroll: slidesToScroll,\n currentSlide: currentSlide\n };\n var onClick = this.clickHandler.bind(this, dotOptions);\n dots = dots.concat( /*#__PURE__*/_react[\"default\"].createElement(\"li\", {\n key: i,\n className: className\n }, /*#__PURE__*/_react[\"default\"].cloneElement(this.props.customPaging(i), {\n onClick: onClick\n })));\n }\n\n return /*#__PURE__*/_react[\"default\"].cloneElement(this.props.appendDots(dots), _objectSpread({\n className: this.props.dotsClass\n }, mouseEvents));\n }\n }]);\n\n return Dots;\n}(_react[\"default\"].PureComponent);\n\nexports.Dots = Dots;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NextArrow = exports.PrevArrow = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _classnames = _interopRequireDefault(require(\"classnames\"));\n\nvar _innerSliderUtils = require(\"./utils/innerSliderUtils\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _extends() { _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; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar PrevArrow = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(PrevArrow, _React$PureComponent);\n\n var _super = _createSuper(PrevArrow);\n\n function PrevArrow() {\n _classCallCheck(this, PrevArrow);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(PrevArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var prevClasses = {\n \"slick-arrow\": true,\n \"slick-prev\": true\n };\n var prevHandler = this.clickHandler.bind(this, {\n message: \"previous\"\n });\n\n if (!this.props.infinite && (this.props.currentSlide === 0 || this.props.slideCount <= this.props.slidesToShow)) {\n prevClasses[\"slick-disabled\"] = true;\n prevHandler = null;\n }\n\n var prevArrowProps = {\n key: \"0\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(prevClasses),\n style: {\n display: \"block\"\n },\n onClick: prevHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var prevArrow;\n\n if (this.props.prevArrow) {\n prevArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.prevArrow, _objectSpread(_objectSpread({}, prevArrowProps), customProps));\n } else {\n prevArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"0\",\n type: \"button\"\n }, prevArrowProps), \" \", \"Previous\");\n }\n\n return prevArrow;\n }\n }]);\n\n return PrevArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.PrevArrow = PrevArrow;\n\nvar NextArrow = /*#__PURE__*/function (_React$PureComponent2) {\n _inherits(NextArrow, _React$PureComponent2);\n\n var _super2 = _createSuper(NextArrow);\n\n function NextArrow() {\n _classCallCheck(this, NextArrow);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(NextArrow, [{\n key: \"clickHandler\",\n value: function clickHandler(options, e) {\n if (e) {\n e.preventDefault();\n }\n\n this.props.clickHandler(options, e);\n }\n }, {\n key: \"render\",\n value: function render() {\n var nextClasses = {\n \"slick-arrow\": true,\n \"slick-next\": true\n };\n var nextHandler = this.clickHandler.bind(this, {\n message: \"next\"\n });\n\n if (!(0, _innerSliderUtils.canGoNext)(this.props)) {\n nextClasses[\"slick-disabled\"] = true;\n nextHandler = null;\n }\n\n var nextArrowProps = {\n key: \"1\",\n \"data-role\": \"none\",\n className: (0, _classnames[\"default\"])(nextClasses),\n style: {\n display: \"block\"\n },\n onClick: nextHandler\n };\n var customProps = {\n currentSlide: this.props.currentSlide,\n slideCount: this.props.slideCount\n };\n var nextArrow;\n\n if (this.props.nextArrow) {\n nextArrow = /*#__PURE__*/_react[\"default\"].cloneElement(this.props.nextArrow, _objectSpread(_objectSpread({}, nextArrowProps), customProps));\n } else {\n nextArrow = /*#__PURE__*/_react[\"default\"].createElement(\"button\", _extends({\n key: \"1\",\n type: \"button\"\n }, nextArrowProps), \" \", \"Next\");\n }\n\n return nextArrow;\n }\n }]);\n\n return NextArrow;\n}(_react[\"default\"].PureComponent);\n\nexports.NextArrow = NextArrow;","/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n","var camel2hyphen = require('string-convert/camel2hyphen');\n\nvar isDimension = function (feature) {\n var re = /[height|width]$/;\n return re.test(feature);\n};\n\nvar obj2mq = function (obj) {\n var mq = '';\n var features = Object.keys(obj);\n features.forEach(function (feature, index) {\n var value = obj[feature];\n feature = camel2hyphen(feature);\n // Add px to dimension features\n if (isDimension(feature) && typeof value === 'number') {\n value = value + 'px';\n }\n if (value === true) {\n mq += feature;\n } else if (value === false) {\n mq += 'not ' + feature;\n } else {\n mq += '(' + feature + ': ' + value + ')';\n }\n if (index < features.length-1) {\n mq += ' and '\n }\n });\n return mq;\n};\n\nvar json2mq = function (query) {\n var mq = '';\n if (typeof query === 'string') {\n return query;\n }\n // Handling array of media queries\n if (query instanceof Array) {\n query.forEach(function (q, index) {\n mq += obj2mq(q);\n if (index < query.length-1) {\n mq += ', '\n }\n });\n return mq;\n }\n // Handling single media query\n return obj2mq(query);\n};\n\nmodule.exports = json2mq;","var camel2hyphen = function (str) {\n return str\n .replace(/[A-Z]/g, function (match) {\n return '-' + match.toLowerCase();\n })\n .toLowerCase();\n};\n\nmodule.exports = camel2hyphen;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\n\nvar defaultProps = {\n accessibility: true,\n adaptiveHeight: false,\n afterChange: null,\n appendDots: function appendDots(dots) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"ul\", {\n style: {\n display: \"block\"\n }\n }, dots);\n },\n arrows: true,\n autoplay: false,\n autoplaySpeed: 3000,\n beforeChange: null,\n centerMode: false,\n centerPadding: \"50px\",\n className: \"\",\n cssEase: \"ease\",\n customPaging: function customPaging(i) {\n return /*#__PURE__*/_react[\"default\"].createElement(\"button\", null, i + 1);\n },\n dots: false,\n dotsClass: \"slick-dots\",\n draggable: true,\n easing: \"linear\",\n edgeFriction: 0.35,\n fade: false,\n focusOnSelect: false,\n infinite: true,\n initialSlide: 0,\n lazyLoad: null,\n nextArrow: null,\n onEdge: null,\n onInit: null,\n onLazyLoadError: null,\n onReInit: null,\n pauseOnDotsHover: false,\n pauseOnFocus: false,\n pauseOnHover: true,\n prevArrow: null,\n responsive: null,\n rows: 1,\n rtl: false,\n slide: \"div\",\n slidesPerRow: 1,\n slidesToScroll: 1,\n slidesToShow: 1,\n speed: 500,\n swipe: true,\n swipeEvent: null,\n swipeToSlide: false,\n touchMove: true,\n touchThreshold: 5,\n useCSS: true,\n useTransform: true,\n variableWidth: false,\n vertical: false,\n waitForAnimate: true\n};\nvar _default = defaultProps;\nexports[\"default\"] = _default;","var MediaQueryDispatch = require('./MediaQueryDispatch');\nmodule.exports = new MediaQueryDispatch();\n","var MediaQuery = require('./MediaQuery');\nvar Util = require('./Util');\nvar each = Util.each;\nvar isFunction = Util.isFunction;\nvar isArray = Util.isArray;\n\n/**\n * Allows for registration of query handlers.\n * Manages the query handler's state and is responsible for wiring up browser events\n *\n * @constructor\n */\nfunction MediaQueryDispatch () {\n if(!window.matchMedia) {\n throw new Error('matchMedia not present, legacy browsers require a polyfill');\n }\n\n this.queries = {};\n this.browserIsIncapable = !window.matchMedia('only all').matches;\n}\n\nMediaQueryDispatch.prototype = {\n\n constructor : MediaQueryDispatch,\n\n /**\n * Registers a handler for the given media query\n *\n * @param {string} q the media query\n * @param {object || Array || Function} options either a single query handler object, a function, or an array of query handlers\n * @param {function} options.match fired when query matched\n * @param {function} [options.unmatch] fired when a query is no longer matched\n * @param {function} [options.setup] fired when handler first triggered\n * @param {boolean} [options.deferSetup=false] whether setup should be run immediately or deferred until query is first matched\n * @param {boolean} [shouldDegrade=false] whether this particular media query should always run on incapable browsers\n */\n register : function(q, options, shouldDegrade) {\n var queries = this.queries,\n isUnconditional = shouldDegrade && this.browserIsIncapable;\n\n if(!queries[q]) {\n queries[q] = new MediaQuery(q, isUnconditional);\n }\n\n //normalise to object in an array\n if(isFunction(options)) {\n options = { match : options };\n }\n if(!isArray(options)) {\n options = [options];\n }\n each(options, function(handler) {\n if (isFunction(handler)) {\n handler = { match : handler };\n }\n queries[q].addHandler(handler);\n });\n\n return this;\n },\n\n /**\n * unregisters a query and all it's handlers, or a specific handler for a query\n *\n * @param {string} q the media query to target\n * @param {object || function} [handler] specific handler to unregister\n */\n unregister : function(q, handler) {\n var query = this.queries[q];\n\n if(query) {\n if(handler) {\n query.removeHandler(handler);\n }\n else {\n query.clear();\n delete this.queries[q];\n }\n }\n\n return this;\n }\n};\n\nmodule.exports = MediaQueryDispatch;\n","var QueryHandler = require('./QueryHandler');\nvar each = require('./Util').each;\n\n/**\n * Represents a single media query, manages it's state and registered handlers for this query\n *\n * @constructor\n * @param {string} query the media query string\n * @param {boolean} [isUnconditional=false] whether the media query should run regardless of whether the conditions are met. Primarily for helping older browsers deal with mobile-first design\n */\nfunction MediaQuery(query, isUnconditional) {\n this.query = query;\n this.isUnconditional = isUnconditional;\n this.handlers = [];\n this.mql = window.matchMedia(query);\n\n var self = this;\n this.listener = function(mql) {\n // Chrome passes an MediaQueryListEvent object, while other browsers pass MediaQueryList directly\n self.mql = mql.currentTarget || mql;\n self.assess();\n };\n this.mql.addListener(this.listener);\n}\n\nMediaQuery.prototype = {\n\n constuctor : MediaQuery,\n\n /**\n * add a handler for this query, triggering if already active\n *\n * @param {object} handler\n * @param {function} handler.match callback for when query is activated\n * @param {function} [handler.unmatch] callback for when query is deactivated\n * @param {function} [handler.setup] callback for immediate execution when a query handler is registered\n * @param {boolean} [handler.deferSetup=false] should the setup callback be deferred until the first time the handler is matched?\n */\n addHandler : function(handler) {\n var qh = new QueryHandler(handler);\n this.handlers.push(qh);\n\n this.matches() && qh.on();\n },\n\n /**\n * removes the given handler from the collection, and calls it's destroy methods\n *\n * @param {object || function} handler the handler to remove\n */\n removeHandler : function(handler) {\n var handlers = this.handlers;\n each(handlers, function(h, i) {\n if(h.equals(handler)) {\n h.destroy();\n return !handlers.splice(i,1); //remove from array and exit each early\n }\n });\n },\n\n /**\n * Determine whether the media query should be considered a match\n *\n * @return {Boolean} true if media query can be considered a match, false otherwise\n */\n matches : function() {\n return this.mql.matches || this.isUnconditional;\n },\n\n /**\n * Clears all handlers and unbinds events\n */\n clear : function() {\n each(this.handlers, function(handler) {\n handler.destroy();\n });\n this.mql.removeListener(this.listener);\n this.handlers.length = 0; //clear array\n },\n\n /*\n * Assesses the query, turning on all handlers if it matches, turning them off if it doesn't match\n */\n assess : function() {\n var action = this.matches() ? 'on' : 'off';\n\n each(this.handlers, function(handler) {\n handler[action]();\n });\n }\n};\n\nmodule.exports = MediaQuery;\n","/**\n * Delegate to handle a media query being matched and unmatched.\n *\n * @param {object} options\n * @param {function} options.match callback for when the media query is matched\n * @param {function} [options.unmatch] callback for when the media query is unmatched\n * @param {function} [options.setup] one-time callback triggered the first time a query is matched\n * @param {boolean} [options.deferSetup=false] should the setup callback be run immediately, rather than first time query is matched?\n * @constructor\n */\nfunction QueryHandler(options) {\n this.options = options;\n !options.deferSetup && this.setup();\n}\n\nQueryHandler.prototype = {\n\n constructor : QueryHandler,\n\n /**\n * coordinates setup of the handler\n *\n * @function\n */\n setup : function() {\n if(this.options.setup) {\n this.options.setup();\n }\n this.initialised = true;\n },\n\n /**\n * coordinates setup and triggering of the handler\n *\n * @function\n */\n on : function() {\n !this.initialised && this.setup();\n this.options.match && this.options.match();\n },\n\n /**\n * coordinates the unmatch event for the handler\n *\n * @function\n */\n off : function() {\n this.options.unmatch && this.options.unmatch();\n },\n\n /**\n * called when a handler is to be destroyed.\n * delegates to the destroy or unmatch callbacks, depending on availability.\n *\n * @function\n */\n destroy : function() {\n this.options.destroy ? this.options.destroy() : this.off();\n },\n\n /**\n * determines equality by reference.\n * if object is supplied compare options, if function, compare match callback\n *\n * @function\n * @param {object || function} [target] the target for comparison\n */\n equals : function(target) {\n return this.options === target || this.options.match === target;\n }\n\n};\n\nmodule.exports = QueryHandler;\n","import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\n\ntype BarProps = {\n barStyle?: object;\n};\n\nexport const Bar = ({ barStyle }: BarProps) => {\n return (\n \n \n \n );\n};\n\nconst BarStyles = StyleSheet.create({\n barContainer: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n bar: {\n width: '10%',\n height: 5,\n borderRadius: 5,\n marginTop: 10,\n marginBottom: 10,\n backgroundColor: '#e2e2e2',\n },\n});\n","import * as React from 'react';\nimport { StyleSheet, TouchableOpacity, View } from 'react-native';\n\ntype CloseProps = {\n onPress: () => void;\n rootStyle?: object;\n iconStyle?: object;\n};\n\nexport const Close = ({ onPress, rootStyle, iconStyle }: CloseProps) => {\n return (\n onPress()} style={[CloseStyles.closeButton, rootStyle]}>\n \n \n \n );\n};\n\nconst CloseStyles = StyleSheet.create({\n closeButton: {\n width: 30,\n height: 30,\n borderRadius: 15,\n position: 'absolute',\n right: 15,\n top: 15,\n backgroundColor: '#e2e2e2',\n zIndex: 3,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n iconLine: {\n position: 'absolute',\n width: 18,\n height: 2,\n borderRadius: 2,\n backgroundColor: 'white',\n },\n});\n","import React, { Component } from 'react';\nimport {\n StyleSheet,\n ScrollView,\n View,\n TouchableHighlight,\n TouchableWithoutFeedback,\n Animated,\n Dimensions,\n PanResponder,\n ScrollViewProps,\n} from 'react-native';\n\nimport { Bar } from './Bar';\nimport { Close } from './Close';\n\nlet FULL_HEIGHT = Dimensions.get('window').height;\nlet FULL_WIDTH = Dimensions.get('window').width;\nlet PANEL_HEIGHT = FULL_HEIGHT - 100;\n\nconst STATUS = {\n CLOSED: 0,\n SMALL: 1,\n LARGE: 2,\n};\n\ntype SwipeablePanelProps = {\n isActive: boolean;\n onClose: () => void;\n showCloseButton?: boolean;\n fullWidth?: boolean;\n noBackgroundOpacity?: boolean;\n style?: object;\n closeRootStyle?: object;\n closeIconStyle?: object;\n closeOnTouchOutside?: boolean;\n onlyLarge?: boolean;\n onlySmall?: boolean;\n openLarge?: boolean;\n smallPanelHeight?: number;\n noBar?: boolean;\n barStyle?: object;\n allowTouchOutside?: boolean;\n scrollViewProps?: ScrollViewProps;\n};\n\ntype MaybeAnimated = T | Animated.Value;\n\ntype SwipeablePanelState = {\n status: number;\n isActive: boolean;\n showComponent: boolean;\n canScroll: boolean;\n opacity: Animated.Value;\n pan: any;\n orientation: 'portrait' | 'landscape';\n deviceWidth: number;\n deviceHeight: number;\n panelHeight: number;\n};\n\nclass SwipeablePanel extends Component {\n pan: Animated.ValueXY;\n isClosing: boolean;\n _panResponder: any;\n animatedValueY: number;\n constructor(props: SwipeablePanelProps) {\n super(props);\n this.state = {\n status: STATUS.CLOSED,\n isActive: false,\n showComponent: false,\n canScroll: false,\n opacity: new Animated.Value(0),\n pan: new Animated.ValueXY({ x: 0, y: FULL_HEIGHT }),\n orientation: FULL_HEIGHT >= FULL_WIDTH ? 'portrait' : 'landscape',\n deviceWidth: FULL_WIDTH,\n deviceHeight: FULL_HEIGHT,\n panelHeight: PANEL_HEIGHT,\n };\n\n this.pan = new Animated.ValueXY({ x: 0, y: FULL_HEIGHT });\n this.isClosing = false;\n this.animatedValueY = 0;\n\n this._panResponder = PanResponder.create({\n onStartShouldSetPanResponder: (evt, gestureState) => true,\n onPanResponderGrant: (evt, gestureState) => {\n this.state.pan.setOffset({\n x: 0,\n y: this.animatedValueY,\n });\n this.state.pan.setValue({ x: 0, y: 0 });\n },\n onPanResponderMove: (evt, gestureState) => {\n if (\n (this.state.status === 1 && Math.abs(this.state.pan.y._value) <= this.state.pan.y._offset) ||\n (this.state.status === 2 && this.state.pan.y._value > -1)\n )\n this.state.pan.setValue({\n x: 0,\n y: this.state.status === STATUS.LARGE ? Math.max(0, gestureState.dy) : gestureState.dy,\n });\n },\n onPanResponderRelease: (evt, gestureState) => {\n const { onlyLarge, onlySmall } = this.props;\n this.state.pan.flattenOffset();\n\n if (gestureState.dy === 0) this._animateTo(this.state.status);\n else if (gestureState.dy < -100 || gestureState.vy < -0.5) {\n if (this.state.status === STATUS.SMALL) this._animateTo(onlySmall ? STATUS.SMALL : STATUS.LARGE);\n else this._animateTo(STATUS.LARGE);\n } else if (gestureState.dy > 100 || gestureState.vy > 0.5) {\n if (this.state.status === STATUS.LARGE) this._animateTo(onlyLarge ? STATUS.CLOSED : STATUS.SMALL);\n else this._animateTo(0);\n } else this._animateTo(this.state.status);\n },\n });\n }\n\n componentDidMount = () => {\n const { isActive, openLarge, onlyLarge, onlySmall } = this.props;\n\n this.animatedValueY = 0;\n this.state.pan.y.addListener((value: any) => (this.animatedValueY = value.value));\n\n this.setState({ isActive });\n\n if (isActive)\n this._animateTo(onlySmall ? STATUS.SMALL : openLarge ? STATUS.LARGE : onlyLarge ? STATUS.LARGE : STATUS.SMALL);\n\n Dimensions.addEventListener('change', this._onOrientationChange);\n };\n\n _onOrientationChange = () => {\n const dimesions = Dimensions.get('screen');\n FULL_HEIGHT = dimesions.height;\n FULL_WIDTH = dimesions.width;\n PANEL_HEIGHT = FULL_HEIGHT - 100;\n\n this.setState({\n orientation: dimesions.height >= dimesions.width ? 'portrait' : 'landscape',\n deviceWidth: FULL_WIDTH,\n deviceHeight: FULL_HEIGHT,\n panelHeight: PANEL_HEIGHT,\n });\n\n this.props.onClose();\n };\n\n componentDidUpdate(prevProps: SwipeablePanelProps, prevState: SwipeablePanelState) {\n const { isActive, openLarge, onlyLarge, onlySmall } = this.props;\n if (onlyLarge && onlySmall)\n console.warn(\n 'Ops. You are using both onlyLarge and onlySmall options. onlySmall will override the onlyLarge in this situation. Please select one of them or none.',\n );\n\n if (prevProps.isActive !== isActive) {\n this.setState({ isActive });\n\n if (isActive) {\n this._animateTo(onlySmall ? STATUS.SMALL : openLarge ? STATUS.LARGE : onlyLarge ? STATUS.LARGE : STATUS.SMALL);\n } else {\n this._animateTo();\n }\n }\n\n if (prevState.orientation !== this.state.orientation) this._animateTo(this.state.status);\n }\n\n _animateTo = (newStatus = 0) => {\n const { smallPanelHeight } = this.props;\n let newY = 0;\n\n if (newStatus === STATUS.CLOSED) newY = PANEL_HEIGHT;\n else if (newStatus === STATUS.SMALL)\n newY = this.state.orientation === 'portrait' ? FULL_HEIGHT - (smallPanelHeight ?? 400) : FULL_HEIGHT / 3;\n else if (newStatus === STATUS.LARGE) newY = 0;\n\n this.setState({\n showComponent: true,\n status: newStatus,\n });\n\n Animated.spring(this.state.pan, {\n toValue: { x: 0, y: newY },\n tension: 80,\n friction: 25,\n useNativeDriver: true,\n restDisplacementThreshold: 10,\n restSpeedThreshold: 10,\n }).start(() => {\n if (newStatus === 0) {\n this.props.onClose();\n this.setState({\n showComponent: false,\n });\n } else this.setState({ canScroll: newStatus === STATUS.LARGE ? true : false });\n });\n };\n\n render() {\n const { showComponent, deviceWidth, deviceHeight, panelHeight } = this.state;\n const {\n noBackgroundOpacity,\n style,\n barStyle,\n closeRootStyle,\n closeIconStyle,\n onClose,\n allowTouchOutside,\n closeOnTouchOutside,\n } = this.props;\n\n return showComponent ? (\n \n {closeOnTouchOutside && (\n onClose()}>\n \n \n )}\n \n {!this.props.noBar && }\n {this.props.showCloseButton && (\n \n )}\n {\n return false;\n }}\n onTouchEnd={() => {\n return false;\n }}\n contentContainerStyle={SwipeablePanelStyles.scrollViewContentContainerStyle}\n {...this.props.scrollViewProps}\n >\n {this.state.canScroll ? (\n \n {this.props.children}\n \n ) : (\n this.props.children\n )}\n \n \n \n ) : null;\n }\n}\n\nconst SwipeablePanelStyles = StyleSheet.create({\n background: {\n position: 'absolute',\n zIndex: 1,\n bottom: 0,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: 'rgba(0,0,0,0.5)',\n },\n panel: {\n position: 'absolute',\n height: PANEL_HEIGHT,\n width: FULL_WIDTH - 50,\n transform: [{ translateY: FULL_HEIGHT - 100 }],\n display: 'flex',\n flexDirection: 'column',\n backgroundColor: 'white',\n bottom: 0,\n borderTopLeftRadius: 20,\n borderTopRightRadius: 20,\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n overflow: 'hidden',\n shadowColor: '#000',\n shadowOffset: {\n width: 0,\n height: 1,\n },\n shadowOpacity: 0.18,\n shadowRadius: 1.0,\n elevation: 1,\n zIndex: 2,\n },\n scrollViewContentContainerStyle: {\n width: '100%',\n },\n});\n\nconst SMALL_PANEL_CONTENT_HEIGHT = PANEL_HEIGHT - (FULL_HEIGHT - 400) - 25;\nconst LARGE_PANEL_CONTENT_HEIGHT = PANEL_HEIGHT - 25;\n\nexport { SwipeablePanel, LARGE_PANEL_CONTENT_HEIGHT, SMALL_PANEL_CONTENT_HEIGHT };\nexport type { SwipeablePanelProps };\n","\"use strict\";\n\nvar Readable = require('stream').Readable;\n\nvar QR = require('./qr-base').QR;\nvar png = require('./png');\nvar vector = require('./vector');\n\nvar fn_noop = function() {};\n\nvar BITMAP_OPTIONS = {\n parse_url: false,\n ec_level: 'M',\n size: 5,\n margin: 4,\n customize: null\n};\n\nvar VECTOR_OPTIONS = {\n parse_url: false,\n ec_level: 'M',\n margin: 1,\n size: 0\n};\n\nfunction get_options(options, force_type) {\n if (typeof options === 'string') {\n options = { 'ec_level': options }\n } else {\n options = options || {};\n }\n var _options = {\n type: String(force_type || options.type || 'png').toLowerCase()\n };\n\n var defaults = _options.type == 'png' ? BITMAP_OPTIONS : VECTOR_OPTIONS;\n\n for (var k in defaults) {\n _options[k] = k in options ? options[k] : defaults[k];\n }\n\n return _options;\n}\n\nfunction qr_image(text, options) {\n options = get_options(options);\n\n var matrix = QR(text, options.ec_level, options.parse_url);\n var stream = new Readable();\n stream._read = fn_noop;\n\n switch (options.type) {\n case 'svg':\n case 'pdf':\n case 'eps':\n process.nextTick(function() {\n vector[options.type](matrix, stream, options.margin, options.size);\n });\n break;\n case 'svgpath':\n // deprecated, use svg_object method\n process.nextTick(function() {\n var obj = vector.svg_object(matrix, options.margin, options.size);\n stream.push(obj.path);\n stream.push(null);\n });\n break;\n case 'png':\n default:\n process.nextTick(function() {\n var bitmap = png.bitmap(matrix, options.size, options.margin);\n if (options.customize) {\n options.customize(bitmap);\n }\n png.png(bitmap, stream);\n });\n }\n\n return stream;\n}\n\nfunction qr_image_sync(text, options) {\n options = get_options(options);\n\n var matrix = QR(text, options.ec_level, options.parse_url);\n var stream = [];\n var result;\n\n switch (options.type) {\n case 'svg':\n case 'pdf':\n case 'eps':\n vector[options.type](matrix, stream, options.margin, options.size);\n result = stream.filter(Boolean).join('');\n break;\n case 'png':\n default:\n var bitmap = png.bitmap(matrix, options.size, options.margin);\n if (options.customize) {\n options.customize(bitmap);\n }\n png.png(bitmap, stream);\n result = Buffer.concat(stream.filter(Boolean));\n }\n\n return result;\n}\n\nfunction svg_object(text, options) {\n options = get_options(options, 'svg');\n\n var matrix = QR(text, options.ec_level);\n return vector.svg_object(matrix, options.margin);\n}\n\nmodule.exports = {\n matrix: QR,\n image: qr_image,\n imageSync: qr_image_sync,\n svgObject: svg_object\n};\n","\"use strict\";\n\nvar encode = require('./encode');\nvar calculateEC = require('./errorcode');\nvar matrix = require('./matrix');\n\nfunction _deepCopy(obj) {\n return JSON.parse(JSON.stringify(obj));\n}\n\nvar EC_LEVELS = ['L', 'M', 'Q', 'H'];\n\n// {{{1 Versions\nvar versions = [\n [], // there is no version 0\n // total number of codewords, (number of ec codewords, number of blocks) * ( L, M, Q, H )\n [26, 7, 1, 10, 1, 13, 1, 17, 1],\n [44, 10, 1, 16, 1, 22, 1, 28, 1],\n [70, 15, 1, 26, 1, 36, 2, 44, 2],\n [100, 20, 1, 36, 2, 52, 2, 64, 4],\n [134, 26, 1, 48, 2, 72, 4, 88, 4], // 5\n [172, 36, 2, 64, 4, 96, 4, 112, 4],\n [196, 40, 2, 72, 4, 108, 6, 130, 5],\n [242, 48, 2, 88, 4, 132, 6, 156, 6],\n [292, 60, 2, 110, 5, 160, 8, 192, 8],\n [346, 72, 4, 130, 5, 192, 8, 224, 8], // 10\n [404, 80, 4, 150, 5, 224, 8, 264, 11],\n [466, 96, 4, 176, 8, 260, 10, 308, 11],\n [532, 104, 4, 198, 9, 288, 12, 352, 16],\n [581, 120, 4, 216, 9, 320, 16, 384, 16],\n [655, 132, 6, 240, 10, 360, 12, 432, 18], // 15\n [733, 144, 6, 280, 10, 408, 17, 480, 16],\n [815, 168, 6, 308, 11, 448, 16, 532, 19],\n [901, 180, 6, 338, 13, 504, 18, 588, 21],\n [991, 196, 7, 364, 14, 546, 21, 650, 25],\n [1085, 224, 8, 416, 16, 600, 20, 700, 25], // 20\n [1156, 224, 8, 442, 17, 644, 23, 750, 25],\n [1258, 252, 9, 476, 17, 690, 23, 816, 34],\n [1364, 270, 9, 504, 18, 750, 25, 900, 30],\n [1474, 300, 10, 560, 20, 810, 27, 960, 32],\n [1588, 312, 12, 588, 21, 870, 29, 1050, 35], // 25\n [1706, 336, 12, 644, 23, 952, 34, 1110, 37],\n [1828, 360, 12, 700, 25, 1020, 34, 1200, 40],\n [1921, 390, 13, 728, 26, 1050, 35, 1260, 42],\n [2051, 420, 14, 784, 28, 1140, 38, 1350, 45],\n [2185, 450, 15, 812, 29, 1200, 40, 1440, 48], // 30\n [2323, 480, 16, 868, 31, 1290, 43, 1530, 51],\n [2465, 510, 17, 924, 33, 1350, 45, 1620, 54],\n [2611, 540, 18, 980, 35, 1440, 48, 1710, 57],\n [2761, 570, 19, 1036, 37, 1530, 51, 1800, 60],\n [2876, 570, 19, 1064, 38, 1590, 53, 1890, 63], // 35\n [3034, 600, 20, 1120, 40, 1680, 56, 1980, 66],\n [3196, 630, 21, 1204, 43, 1770, 59, 2100, 70],\n [3362, 660, 22, 1260, 45, 1860, 62, 2220, 74],\n [3532, 720, 24, 1316, 47, 1950, 65, 2310, 77],\n [3706, 750, 25, 1372, 49, 2040, 68, 2430, 81] // 40\n];\n\nversions = versions.map(function(v, index) {\n if (!index) return {};\n\n var res = {\n }\n for (var i = 1; i < 8; i += 2) {\n var length = v[0] - v[i];\n var num_template = v[i+1];\n var ec_level = EC_LEVELS[(i/2)|0];\n var level = {\n version: index,\n ec_level: ec_level,\n data_len: length,\n ec_len: v[i] / num_template,\n blocks: [],\n ec: []\n }\n\n for (var k = num_template, n = length; k > 0; k--) {\n var block = (n / k)|0;\n level.blocks.push(block);\n n -= block;\n\n }\n res[ec_level] = level;\n }\n return res;\n});\n\n// {{{1 Get version template\nfunction getTemplate(message, ec_level) {\n var i = 1;\n var len;\n\n if (message.data1) {\n len = Math.ceil(message.data1.length / 8);\n } else {\n i = 10;\n }\n for (/* i */; i < 10; i++) {\n var version = versions[i][ec_level];\n if (version.data_len >= len) {\n return _deepCopy(version);\n }\n }\n\n if (message.data10) {\n len = Math.ceil(message.data10.length / 8);\n } else {\n i = 27;\n }\n for (/* i */; i < 27; i++) {\n var version = versions[i][ec_level];\n if (version.data_len >= len) {\n return _deepCopy(version);\n }\n }\n\n len = Math.ceil(message.data27.length / 8);\n for (/* i */; i < 41; i++) {\n var version = versions[i][ec_level];\n if (version.data_len >= len) {\n return _deepCopy(version);\n }\n }\n throw new Error(\"Too much data\");\n}\n\n// {{{1 Fill template\nfunction fillTemplate(message, template) {\n var blocks = new Buffer(template.data_len);\n blocks.fill(0);\n\n if (template.version < 10) {\n message = message.data1;\n } else if (template.version < 27) {\n message = message.data10;\n } else {\n message = message.data27;\n }\n\n var len = message.length;\n\n for (var i = 0; i < len; i += 8) {\n var b = 0;\n for (var j = 0; j < 8; j++) {\n b = (b << 1) | (message[i + j] ? 1 : 0);\n }\n blocks[i / 8] = b;\n }\n\n var pad = 236;\n for (var i = Math.ceil((len + 4) / 8); i < blocks.length; i++) {\n blocks[i] = pad;\n pad = (pad == 236) ? 17 : 236;\n }\n\n var offset = 0;\n template.blocks = template.blocks.map(function(n) {\n var b = blocks.slice(offset, offset + n);\n offset += n;\n template.ec.push(calculateEC(b, template.ec_len));\n return b;\n });\n\n return template;\n}\n\n// {{{1 All-in-one\nfunction QR(text, ec_level, parse_url) {\n ec_level = EC_LEVELS.indexOf(ec_level) > -1 ? ec_level : 'M';\n var message = encode(text, parse_url);\n var data = fillTemplate(message, getTemplate(message, ec_level));\n return matrix.getMatrix(data);\n}\n\n// {{{1 export functions\nmodule.exports = {\n QR: QR,\n getTemplate: getTemplate,\n fillTemplate: fillTemplate,\n}\n","\"use strict\";\n\nfunction pushBits(arr, n, value) {\n for (var bit = 1 << (n - 1); bit; bit = bit >>> 1) {\n arr.push(bit & value ? 1 : 0);\n }\n}\n\n// {{{1 8bit encode\nfunction encode_8bit(data) {\n var len = data.length;\n var bits = [];\n\n for (var i = 0; i < len; i++) {\n pushBits(bits, 8, data[i]);\n }\n\n var res = {};\n\n var d = [0, 1, 0, 0];\n pushBits(d, 16, len);\n res.data10 = res.data27 = d.concat(bits);\n\n if (len < 256) {\n var d = [0, 1, 0, 0];\n pushBits(d, 8, len);\n res.data1 = d.concat(bits);\n }\n\n return res;\n}\n\n// {{{1 alphanumeric encode\nvar ALPHANUM = (function(s) {\n var res = {};\n for (var i = 0; i < s.length; i++) {\n res[s[i]] = i;\n }\n return res;\n})('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:');\n\nfunction encode_alphanum(str) {\n var len = str.length;\n var bits = [];\n\n for (var i = 0; i < len; i += 2) {\n var b = 6;\n var n = ALPHANUM[str[i]];\n if (str[i+1]) {\n b = 11;\n n = n * 45 + ALPHANUM[str[i+1]];\n }\n pushBits(bits, b, n);\n }\n\n var res = {};\n\n var d = [0, 0, 1, 0];\n pushBits(d, 13, len);\n res.data27 = d.concat(bits);\n\n if (len < 2048) {\n var d = [0, 0, 1, 0];\n pushBits(d, 11, len);\n res.data10 = d.concat(bits);\n }\n\n if (len < 512) {\n var d = [0, 0, 1, 0];\n pushBits(d, 9, len);\n res.data1 = d.concat(bits);\n }\n\n return res;\n}\n\n// {{{1 numeric encode\nfunction encode_numeric(str) {\n var len = str.length;\n var bits = [];\n\n for (var i = 0; i < len; i += 3) {\n var s = str.substr(i, 3);\n var b = Math.ceil(s.length * 10 / 3);\n pushBits(bits, b, parseInt(s, 10));\n }\n\n var res = {};\n\n var d = [0, 0, 0, 1];\n pushBits(d, 14, len);\n res.data27 = d.concat(bits);\n\n if (len < 4096) {\n var d = [0, 0, 0, 1];\n pushBits(d, 12, len);\n res.data10 = d.concat(bits);\n }\n\n if (len < 1024) {\n var d = [0, 0, 0, 1];\n pushBits(d, 10, len);\n res.data1 = d.concat(bits);\n }\n\n return res;\n}\n\n// {{{1 url encode\nfunction encode_url(str) {\n var slash = str.indexOf('/', 8) + 1 || str.length;\n var res = encode(str.slice(0, slash).toUpperCase(), false);\n\n if (slash >= str.length) {\n return res;\n }\n\n var path_res = encode(str.slice(slash), false);\n\n res.data27 = res.data27.concat(path_res.data27);\n\n if (res.data10 && path_res.data10) {\n res.data10 = res.data10.concat(path_res.data10);\n }\n\n if (res.data1 && path_res.data1) {\n res.data1 = res.data1.concat(path_res.data1);\n }\n\n return res;\n}\n\n// {{{1 Choose encode mode and generates struct with data for different version\nfunction encode(data, parse_url) {\n var str;\n var t = typeof data;\n\n if (t == 'string' || t == 'number') {\n str = '' + data;\n data = new Buffer(str);\n } else if (Buffer.isBuffer(data)) {\n str = data.toString();\n } else if (Array.isArray(data)) {\n data = new Buffer(data);\n str = data.toString();\n } else {\n throw new Error(\"Bad data\");\n }\n\n if (/^[0-9]+$/.test(str)) {\n if (data.length > 7089) {\n throw new Error(\"Too much data\");\n }\n return encode_numeric(str);\n }\n\n if (/^[0-9A-Z \\$%\\*\\+\\.\\/\\:\\-]+$/.test(str)) {\n if (data.length > 4296) {\n throw new Error(\"Too much data\");\n }\n return encode_alphanum(str);\n }\n\n if (parse_url && /^https?:/i.test(str)) {\n return encode_url(str);\n }\n\n if (data.length > 2953) {\n throw new Error(\"Too much data\");\n }\n return encode_8bit(data);\n}\n\n// {{{1 export functions\nmodule.exports = encode;\n","\"use strict\";\n\n// {{{1 Galois Field Math\nvar GF256_BASE = 285;\n\nvar EXP_TABLE = [1];\nvar LOG_TABLE = [];\n\nfor (var i = 1; i < 256; i++) {\n var n = EXP_TABLE[i - 1] << 1;\n if (n > 255) n = n ^ GF256_BASE;\n EXP_TABLE[i] = n;\n}\n\nfor (var i = 0; i < 255; i++) {\n LOG_TABLE[EXP_TABLE[i]] = i;\n}\n\nfunction exp(k) {\n while (k < 0) k += 255;\n while (k > 255) k -= 255;\n return EXP_TABLE[k];\n}\n\nfunction log(k) {\n if (k < 1 || k > 255) {\n throw Error('Bad log(' + k + ')');\n }\n return LOG_TABLE[k];\n}\n\n// {{{1 Generator Polynomials\nvar POLYNOMIALS = [\n [0], // a^0 x^0\n [0, 0], // a^0 x^1 + a^0 x^0\n [0, 25, 1], // a^0 x^2 + a^25 x^1 + a^1 x^0\n // and so on...\n];\n\nfunction generatorPolynomial(num) {\n if (POLYNOMIALS[num]) {\n return POLYNOMIALS[num];\n }\n var prev = generatorPolynomial(num - 1);\n var res = [];\n\n res[0] = prev[0];\n for (var i = 1; i <= num; i++) {\n res[i] = log(exp(prev[i]) ^ exp(prev[i - 1] + num - 1));\n }\n POLYNOMIALS[num] = res;\n return res;\n}\n\n// {{{1 export functions\nmodule.exports = function calculate_ec(msg, ec_len) {\n // `msg` could be array or buffer\n // convert `msg` to array\n msg = [].slice.call(msg);\n\n // Generator Polynomial\n var poly = generatorPolynomial(ec_len);\n\n for (var i = 0; i < ec_len; i++) msg.push(0);\n while (msg.length > ec_len) {\n if (!msg[0]) {\n msg.shift();\n continue;\n }\n var log_k = log(msg[0]);\n for (var i = 0; i <= ec_len; i++) {\n msg[i] = msg[i] ^ exp(poly[i] + log_k);\n }\n msg.shift();\n }\n return new Buffer(msg);\n}\n","\"use strict\";\n\n// {{{1 Initialize matrix with zeros\nfunction init(version) {\n var N = version * 4 + 17;\n var matrix = [];\n var zeros = new Buffer(N);\n zeros.fill(0);\n zeros = [].slice.call(zeros);\n for (var i = 0; i < N; i++) {\n matrix[i] = zeros.slice();\n }\n return matrix;\n}\n\n// {{{1 Put finders into matrix\nfunction fillFinders(matrix) {\n var N = matrix.length;\n for (var i = -3; i <= 3; i++) {\n for (var j = -3; j <= 3; j++) {\n var max = Math.max(i, j);\n var min = Math.min(i, j);\n var pixel = (max == 2 && min >= -2) || (min == -2 && max <= 2) ? 0x80 : 0x81;\n matrix[3 + i][3 + j] = pixel;\n matrix[3 + i][N - 4 + j] = pixel;\n matrix[N - 4 + i][3 + j] = pixel;\n }\n }\n for (var i = 0; i < 8; i++) {\n matrix[7][i] = matrix[i][7] =\n matrix[7][N - i - 1] = matrix[i][N - 8] =\n matrix[N - 8][i] = matrix[N - 1 - i][7] = 0x80;\n }\n}\n\n// {{{1 Put align and timinig\nfunction fillAlignAndTiming(matrix) {\n var N = matrix.length;\n if (N > 21) {\n var len = N - 13;\n var delta = Math.round(len / Math.ceil(len / 28));\n if (delta % 2) delta++;\n var res = [];\n for (var p = len + 6; p > 10; p -= delta) {\n res.unshift(p);\n }\n res.unshift(6);\n for (var i = 0; i < res.length; i++) {\n for (var j = 0; j < res.length; j++) {\n var x = res[i], y = res[j];\n if (matrix[x][y]) continue;\n for (var r = -2; r <=2 ; r++) {\n for (var c = -2; c <=2 ; c++) {\n var max = Math.max(r, c);\n var min = Math.min(r, c);\n var pixel = (max == 1 && min >= -1) || (min == -1 && max <= 1) ? 0x80 : 0x81;\n matrix[x + r][y + c] = pixel;\n }\n }\n }\n }\n }\n for (var i = 8; i < N - 8; i++) {\n matrix[6][i] = matrix[i][6] = i % 2 ? 0x80 : 0x81;\n }\n}\n\n// {{{1 Fill reserved areas with zeroes\nfunction fillStub(matrix) {\n var N = matrix.length;\n for (var i = 0; i < 8; i++) {\n if (i != 6) {\n matrix[8][i] = matrix[i][8] = 0x80;\n }\n matrix[8][N - 1 - i] = 0x80;\n matrix[N - 1 - i][8] = 0x80;\n }\n matrix[8][8] = 0x80;\n matrix[N - 8][8] = 0x81;\n\n if (N < 45) return;\n\n for (var i = N - 11; i < N - 8; i++) {\n for (var j = 0; j < 6; j++) {\n matrix[i][j] = matrix[j][i] = 0x80;\n }\n }\n}\n\n// {{{1 Fill reserved areas\nvar fillReserved = (function() {\n var FORMATS = Array(32);\n var VERSIONS = Array(40);\n\n var gf15 = 0x0537;\n var gf18 = 0x1f25;\n var formats_mask = 0x5412;\n\n for (var format = 0; format < 32; format++) {\n var res = format << 10;\n for (var i = 5; i > 0; i--) {\n if (res >>> (9 + i)) {\n res = res ^ (gf15 << (i - 1));\n }\n }\n FORMATS[format] = (res | (format << 10)) ^ formats_mask;\n }\n\n for (var version = 7; version <= 40; version++) {\n var res = version << 12;\n for (var i = 6; i > 0; i--) {\n if (res >>> (11 + i)) {\n res = res ^ (gf18 << (i - 1));\n }\n }\n VERSIONS[version] = (res | (version << 12));\n }\n\n var EC_LEVELS = { L: 1, M: 0, Q: 3, H: 2 };\n\n return function fillReserved(matrix, ec_level, mask) {\n var N = matrix.length;\n var format = FORMATS[EC_LEVELS[ec_level] << 3 | mask];\n function F(k) { return format >> k & 1 ? 0x81 : 0x80 };\n for (var i = 0; i < 8; i++) {\n matrix[8][N - 1 - i] = F(i);\n if (i < 6) matrix[i][8] = F(i);\n }\n for (var i = 8; i < 15; i++) {\n matrix[N - 15 + i][8] = F(i);\n if (i > 8) matrix[8][14 - i] = F(i);\n }\n matrix[7][8] = F(6);\n matrix[8][8] = F(7);\n matrix[8][7] = F(8);\n\n var version = VERSIONS[(N - 17)/4];\n if (!version) return;\n function V(k) { return version >> k & 1 ? 0x81 : 0x80 };\n for (var i = 0; i < 6; i++) {\n for (var j = 0; j < 3; j++) {\n matrix[N - 11 + j][i] = matrix[i][N - 11 + j] = V(i * 3 + j);\n }\n }\n }\n})();\n\n// {{{1 Fill data\nvar fillData = (function() {\n var MASK_FUNCTIONS = [\n function(i, j) { return (i + j) % 2 == 0 },\n function(i, j) { return i % 2 == 0 },\n function(i, j) { return j % 3 == 0 },\n function(i, j) { return (i + j) % 3 == 0 },\n function(i, j) { return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0 },\n function(i, j) { return (i * j) % 2 + (i * j) % 3 == 0 },\n function(i, j) { return ( (i * j) % 2 + (i * j) % 3) % 2 == 0 },\n function(i, j) { return ( (i * j) % 3 + (i + j) % 2) % 2 == 0 }\n ];\n\n return function fillData(matrix, data, mask) {\n var N = matrix.length;\n var row, col, dir = -1;\n row = col = N - 1;\n var mask_fn = MASK_FUNCTIONS[mask];\n var len = data.blocks[data.blocks.length - 1].length;\n\n for (var i = 0; i < len; i++) {\n for (var b = 0; b < data.blocks.length; b++) {\n if (data.blocks[b].length <= i) continue;\n put(data.blocks[b][i]);\n }\n }\n\n len = data.ec_len;\n for (var i = 0; i < len; i++) {\n for (var b = 0; b < data.ec.length; b++) {\n put(data.ec[b][i]);\n }\n }\n\n if (col > -1) {\n do {\n matrix[row][col] = mask_fn(row, col) ? 1 : 0;\n } while (next());\n }\n\n function put(byte) {\n for (var mask = 0x80; mask; mask = mask >> 1) {\n var pixel = !!(mask & byte);\n if (mask_fn(row, col)) pixel = !pixel;\n matrix[row][col] = pixel ? 1 : 0;\n next();\n }\n }\n\n function next() {\n do {\n if ((col % 2) ^ (col < 6)) {\n if (dir < 0 && row == 0 || dir > 0 && row == N - 1) {\n col--;\n dir = -dir;\n } else {\n col++;\n row += dir;\n }\n } else {\n col--;\n }\n if (col == 6) {\n col--;\n }\n if (col < 0) {\n return false;\n }\n } while (matrix[row][col] & 0xf0);\n return true;\n }\n }\n})();\n\n// {{{1 Calculate penalty\nfunction calculatePenalty(matrix) {\n var N = matrix.length;\n var penalty = 0;\n // Rule 1\n for (var i = 0; i < N; i++) {\n var pixel = matrix[i][0] & 1;\n var len = 1;\n for (var j = 1; j < N; j++) {\n var p = matrix[i][j] & 1;\n if (p == pixel) {\n len++;\n continue;\n }\n if (len >= 5) {\n penalty += len - 2;\n }\n pixel = p;\n len = 1;\n }\n if (len >= 5) {\n penalty += len - 2;\n }\n }\n for (var j = 0; j < N; j++) {\n var pixel = matrix[0][j] & 1;\n var len = 1;\n for (var i = 1; i < N; i++) {\n var p = matrix[i][j] & 1;\n if (p == pixel) {\n len++;\n continue;\n }\n if (len >= 5) {\n penalty += len - 2;\n }\n pixel = p;\n len = 1;\n }\n if (len >= 5) {\n penalty += len - 2;\n }\n }\n\n // Rule 2\n for (var i = 0; i < N - 1; i++) {\n for (var j = 0; j < N - 1; j++) {\n var s = matrix[i][j] + matrix[i][j + 1] + matrix[i + 1][j] + matrix[i + 1][j + 1] & 7;\n if (s == 0 || s == 4) {\n penalty += 3;\n }\n }\n }\n\n // Rule 3\n function I(k) { return matrix[i][j + k] & 1 };\n function J(k) { return matrix[i + k][j] & 1 };\n for (var i = 0; i < N; i++) {\n for (var j = 0; j < N; j++) {\n if (j < N - 6 && I(0) && !I(1) && I(2) && I(3) && I(4) && !I(5) && I(6)) {\n if (j >= 4 && !(I(-4) || I(-3) || I(-2) || I(-1))) {\n penalty += 40;\n }\n if (j < N - 10 && !(I(7) || I(8) || I(9) || I(10))) {\n penalty += 40;\n }\n }\n\n if (i < N - 6 && J(0) && !J(1) && J(2) && J(3) && J(4) && !J(5) && J(6)) {\n if (i >= 4 && !(J(-4) || J(-3) || J(-2) || J(-1))) {\n penalty += 40;\n }\n if (i < N - 10 && !(J(7) || J(8) || J(9) || J(10))) {\n penalty += 40;\n }\n }\n }\n }\n\n // Rule 4\n var numDark = 0;\n for (var i = 0; i < N; i++) {\n for (var j = 0; j < N; j++) {\n if (matrix[i][j] & 1) numDark++;\n }\n }\n penalty += 10 * Math.floor(Math.abs(10 - 20 * numDark/(N * N)));\n\n return penalty;\n}\n\n// {{{1 All-in-one function\nfunction getMatrix(data) {\n var matrix = init(data.version);\n fillFinders(matrix);\n fillAlignAndTiming(matrix);\n fillStub(matrix);\n\n var penalty = Infinity;\n var bestMask = 0;\n for (var mask = 0; mask < 8; mask++) {\n fillData(matrix, data, mask);\n fillReserved(matrix, data.ec_level, mask);\n var p = calculatePenalty(matrix);\n if (p < penalty) {\n penalty = p;\n bestMask = mask;\n }\n }\n\n fillData(matrix, data, bestMask);\n fillReserved(matrix, data.ec_level, bestMask);\n\n return matrix.map(function(row) {\n return row.map(function(cell) {\n return cell & 1;\n });\n });\n}\n\n// {{{1 export functions\nmodule.exports = {\n getMatrix: getMatrix,\n init: init,\n fillFinders: fillFinders,\n fillAlignAndTiming: fillAlignAndTiming,\n fillStub: fillStub,\n fillReserved: fillReserved,\n fillData: fillData,\n calculatePenalty: calculatePenalty,\n}\n","\"use strict\";\n\nvar zlib = require('zlib');\n\nvar crc32 = require('./crc32');\n\nvar PNG_HEAD = new Buffer([137,80,78,71,13,10,26,10]);\nvar PNG_IHDR = new Buffer([0,0,0,13,73,72,68,82,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0]);\nvar PNG_IDAT = new Buffer([0,0,0,0,73,68,65,84]);\nvar PNG_IEND = new Buffer([0,0,0,0,73,69,78,68,174,66,96,130]);\n\nfunction png(bitmap, stream) {\n stream.push(PNG_HEAD);\n\n var IHDR = Buffer.concat([PNG_IHDR]);\n IHDR.writeUInt32BE(bitmap.size, 8);\n IHDR.writeUInt32BE(bitmap.size, 12);\n IHDR.writeUInt32BE(crc32(IHDR.slice(4, -4)), 21);\n stream.push(IHDR);\n\n var IDAT = Buffer.concat([\n PNG_IDAT,\n zlib.deflateSync(bitmap.data, { level: 9 }),\n new Buffer(4)\n ]);\n IDAT.writeUInt32BE(IDAT.length - 12, 0);\n IDAT.writeUInt32BE(crc32(IDAT.slice(4, -4)), IDAT.length - 4);\n stream.push(IDAT);\n\n stream.push(PNG_IEND);\n stream.push(null);\n}\n\nfunction bitmap(matrix, size, margin) {\n var N = matrix.length;\n var X = (N + 2 * margin) * size;\n var data = new Buffer((X + 1) * X);\n data.fill(255);\n for (var i = 0; i < X; i++) {\n data[i * (X + 1)] = 0;\n }\n\n for (var i = 0; i < N; i++) {\n for (var j = 0; j < N; j++) {\n if (matrix[i][j]) {\n var offset = ((margin + i) * (X + 1) + (margin + j)) * size + 1;\n data.fill(0, offset, offset + size);\n for (var c = 1; c < size; c++) {\n data.copy(data, offset + c * (X + 1), offset, offset + size);\n }\n }\n }\n }\n\n return {\n data: data,\n size: X\n }\n}\n\nmodule.exports = {\n bitmap: bitmap,\n png: png\n}\n","'use strict';\n\nvar Buffer = require('buffer').Buffer;\nvar Transform = require('stream').Transform;\nvar binding = require('./binding');\nvar util = require('util');\nvar assert = require('assert').ok;\nvar kMaxLength = require('buffer').kMaxLength;\nvar kRangeErrorMessage = 'Cannot create final Buffer. It would be larger ' + 'than 0x' + kMaxLength.toString(16) + ' bytes';\n\n// zlib doesn't provide these, so kludge them in following the same\n// const naming scheme zlib uses.\nbinding.Z_MIN_WINDOWBITS = 8;\nbinding.Z_MAX_WINDOWBITS = 15;\nbinding.Z_DEFAULT_WINDOWBITS = 15;\n\n// fewer than 64 bytes per chunk is stupid.\n// technically it could work with as few as 8, but even 64 bytes\n// is absurdly low. Usually a MB or more is best.\nbinding.Z_MIN_CHUNK = 64;\nbinding.Z_MAX_CHUNK = Infinity;\nbinding.Z_DEFAULT_CHUNK = 16 * 1024;\n\nbinding.Z_MIN_MEMLEVEL = 1;\nbinding.Z_MAX_MEMLEVEL = 9;\nbinding.Z_DEFAULT_MEMLEVEL = 8;\n\nbinding.Z_MIN_LEVEL = -1;\nbinding.Z_MAX_LEVEL = 9;\nbinding.Z_DEFAULT_LEVEL = binding.Z_DEFAULT_COMPRESSION;\n\n// expose all the zlib constants\nvar bkeys = Object.keys(binding);\nfor (var bk = 0; bk < bkeys.length; bk++) {\n var bkey = bkeys[bk];\n if (bkey.match(/^Z/)) {\n Object.defineProperty(exports, bkey, {\n enumerable: true, value: binding[bkey], writable: false\n });\n }\n}\n\n// translation table for return codes.\nvar codes = {\n Z_OK: binding.Z_OK,\n Z_STREAM_END: binding.Z_STREAM_END,\n Z_NEED_DICT: binding.Z_NEED_DICT,\n Z_ERRNO: binding.Z_ERRNO,\n Z_STREAM_ERROR: binding.Z_STREAM_ERROR,\n Z_DATA_ERROR: binding.Z_DATA_ERROR,\n Z_MEM_ERROR: binding.Z_MEM_ERROR,\n Z_BUF_ERROR: binding.Z_BUF_ERROR,\n Z_VERSION_ERROR: binding.Z_VERSION_ERROR\n};\n\nvar ckeys = Object.keys(codes);\nfor (var ck = 0; ck < ckeys.length; ck++) {\n var ckey = ckeys[ck];\n codes[codes[ckey]] = ckey;\n}\n\nObject.defineProperty(exports, 'codes', {\n enumerable: true, value: Object.freeze(codes), writable: false\n});\n\nexports.Deflate = Deflate;\nexports.Inflate = Inflate;\nexports.Gzip = Gzip;\nexports.Gunzip = Gunzip;\nexports.DeflateRaw = DeflateRaw;\nexports.InflateRaw = InflateRaw;\nexports.Unzip = Unzip;\n\nexports.createDeflate = function (o) {\n return new Deflate(o);\n};\n\nexports.createInflate = function (o) {\n return new Inflate(o);\n};\n\nexports.createDeflateRaw = function (o) {\n return new DeflateRaw(o);\n};\n\nexports.createInflateRaw = function (o) {\n return new InflateRaw(o);\n};\n\nexports.createGzip = function (o) {\n return new Gzip(o);\n};\n\nexports.createGunzip = function (o) {\n return new Gunzip(o);\n};\n\nexports.createUnzip = function (o) {\n return new Unzip(o);\n};\n\n// Convenience methods.\n// compress/decompress a string or buffer in one step.\nexports.deflate = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Deflate(opts), buffer, callback);\n};\n\nexports.deflateSync = function (buffer, opts) {\n return zlibBufferSync(new Deflate(opts), buffer);\n};\n\nexports.gzip = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Gzip(opts), buffer, callback);\n};\n\nexports.gzipSync = function (buffer, opts) {\n return zlibBufferSync(new Gzip(opts), buffer);\n};\n\nexports.deflateRaw = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new DeflateRaw(opts), buffer, callback);\n};\n\nexports.deflateRawSync = function (buffer, opts) {\n return zlibBufferSync(new DeflateRaw(opts), buffer);\n};\n\nexports.unzip = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Unzip(opts), buffer, callback);\n};\n\nexports.unzipSync = function (buffer, opts) {\n return zlibBufferSync(new Unzip(opts), buffer);\n};\n\nexports.inflate = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Inflate(opts), buffer, callback);\n};\n\nexports.inflateSync = function (buffer, opts) {\n return zlibBufferSync(new Inflate(opts), buffer);\n};\n\nexports.gunzip = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new Gunzip(opts), buffer, callback);\n};\n\nexports.gunzipSync = function (buffer, opts) {\n return zlibBufferSync(new Gunzip(opts), buffer);\n};\n\nexports.inflateRaw = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n return zlibBuffer(new InflateRaw(opts), buffer, callback);\n};\n\nexports.inflateRawSync = function (buffer, opts) {\n return zlibBufferSync(new InflateRaw(opts), buffer);\n};\n\nfunction zlibBuffer(engine, buffer, callback) {\n var buffers = [];\n var nread = 0;\n\n engine.on('error', onError);\n engine.on('end', onEnd);\n\n engine.end(buffer);\n flow();\n\n function flow() {\n var chunk;\n while (null !== (chunk = engine.read())) {\n buffers.push(chunk);\n nread += chunk.length;\n }\n engine.once('readable', flow);\n }\n\n function onError(err) {\n engine.removeListener('end', onEnd);\n engine.removeListener('readable', flow);\n callback(err);\n }\n\n function onEnd() {\n var buf;\n var err = null;\n\n if (nread >= kMaxLength) {\n err = new RangeError(kRangeErrorMessage);\n } else {\n buf = Buffer.concat(buffers, nread);\n }\n\n buffers = [];\n engine.close();\n callback(err, buf);\n }\n}\n\nfunction zlibBufferSync(engine, buffer) {\n if (typeof buffer === 'string') buffer = Buffer.from(buffer);\n\n if (!Buffer.isBuffer(buffer)) throw new TypeError('Not a string or buffer');\n\n var flushFlag = engine._finishFlushFlag;\n\n return engine._processChunk(buffer, flushFlag);\n}\n\n// generic zlib\n// minimal 2-byte header\nfunction Deflate(opts) {\n if (!(this instanceof Deflate)) return new Deflate(opts);\n Zlib.call(this, opts, binding.DEFLATE);\n}\n\nfunction Inflate(opts) {\n if (!(this instanceof Inflate)) return new Inflate(opts);\n Zlib.call(this, opts, binding.INFLATE);\n}\n\n// gzip - bigger header, same deflate compression\nfunction Gzip(opts) {\n if (!(this instanceof Gzip)) return new Gzip(opts);\n Zlib.call(this, opts, binding.GZIP);\n}\n\nfunction Gunzip(opts) {\n if (!(this instanceof Gunzip)) return new Gunzip(opts);\n Zlib.call(this, opts, binding.GUNZIP);\n}\n\n// raw - no header\nfunction DeflateRaw(opts) {\n if (!(this instanceof DeflateRaw)) return new DeflateRaw(opts);\n Zlib.call(this, opts, binding.DEFLATERAW);\n}\n\nfunction InflateRaw(opts) {\n if (!(this instanceof InflateRaw)) return new InflateRaw(opts);\n Zlib.call(this, opts, binding.INFLATERAW);\n}\n\n// auto-detect header.\nfunction Unzip(opts) {\n if (!(this instanceof Unzip)) return new Unzip(opts);\n Zlib.call(this, opts, binding.UNZIP);\n}\n\nfunction isValidFlushFlag(flag) {\n return flag === binding.Z_NO_FLUSH || flag === binding.Z_PARTIAL_FLUSH || flag === binding.Z_SYNC_FLUSH || flag === binding.Z_FULL_FLUSH || flag === binding.Z_FINISH || flag === binding.Z_BLOCK;\n}\n\n// the Zlib class they all inherit from\n// This thing manages the queue of requests, and returns\n// true or false if there is anything in the queue when\n// you call the .write() method.\n\nfunction Zlib(opts, mode) {\n var _this = this;\n\n this._opts = opts = opts || {};\n this._chunkSize = opts.chunkSize || exports.Z_DEFAULT_CHUNK;\n\n Transform.call(this, opts);\n\n if (opts.flush && !isValidFlushFlag(opts.flush)) {\n throw new Error('Invalid flush flag: ' + opts.flush);\n }\n if (opts.finishFlush && !isValidFlushFlag(opts.finishFlush)) {\n throw new Error('Invalid flush flag: ' + opts.finishFlush);\n }\n\n this._flushFlag = opts.flush || binding.Z_NO_FLUSH;\n this._finishFlushFlag = typeof opts.finishFlush !== 'undefined' ? opts.finishFlush : binding.Z_FINISH;\n\n if (opts.chunkSize) {\n if (opts.chunkSize < exports.Z_MIN_CHUNK || opts.chunkSize > exports.Z_MAX_CHUNK) {\n throw new Error('Invalid chunk size: ' + opts.chunkSize);\n }\n }\n\n if (opts.windowBits) {\n if (opts.windowBits < exports.Z_MIN_WINDOWBITS || opts.windowBits > exports.Z_MAX_WINDOWBITS) {\n throw new Error('Invalid windowBits: ' + opts.windowBits);\n }\n }\n\n if (opts.level) {\n if (opts.level < exports.Z_MIN_LEVEL || opts.level > exports.Z_MAX_LEVEL) {\n throw new Error('Invalid compression level: ' + opts.level);\n }\n }\n\n if (opts.memLevel) {\n if (opts.memLevel < exports.Z_MIN_MEMLEVEL || opts.memLevel > exports.Z_MAX_MEMLEVEL) {\n throw new Error('Invalid memLevel: ' + opts.memLevel);\n }\n }\n\n if (opts.strategy) {\n if (opts.strategy != exports.Z_FILTERED && opts.strategy != exports.Z_HUFFMAN_ONLY && opts.strategy != exports.Z_RLE && opts.strategy != exports.Z_FIXED && opts.strategy != exports.Z_DEFAULT_STRATEGY) {\n throw new Error('Invalid strategy: ' + opts.strategy);\n }\n }\n\n if (opts.dictionary) {\n if (!Buffer.isBuffer(opts.dictionary)) {\n throw new Error('Invalid dictionary: it should be a Buffer instance');\n }\n }\n\n this._handle = new binding.Zlib(mode);\n\n var self = this;\n this._hadError = false;\n this._handle.onerror = function (message, errno) {\n // there is no way to cleanly recover.\n // continuing only obscures problems.\n _close(self);\n self._hadError = true;\n\n var error = new Error(message);\n error.errno = errno;\n error.code = exports.codes[errno];\n self.emit('error', error);\n };\n\n var level = exports.Z_DEFAULT_COMPRESSION;\n if (typeof opts.level === 'number') level = opts.level;\n\n var strategy = exports.Z_DEFAULT_STRATEGY;\n if (typeof opts.strategy === 'number') strategy = opts.strategy;\n\n this._handle.init(opts.windowBits || exports.Z_DEFAULT_WINDOWBITS, level, opts.memLevel || exports.Z_DEFAULT_MEMLEVEL, strategy, opts.dictionary);\n\n this._buffer = Buffer.allocUnsafe(this._chunkSize);\n this._offset = 0;\n this._level = level;\n this._strategy = strategy;\n\n this.once('end', this.close);\n\n Object.defineProperty(this, '_closed', {\n get: function () {\n return !_this._handle;\n },\n configurable: true,\n enumerable: true\n });\n}\n\nutil.inherits(Zlib, Transform);\n\nZlib.prototype.params = function (level, strategy, callback) {\n if (level < exports.Z_MIN_LEVEL || level > exports.Z_MAX_LEVEL) {\n throw new RangeError('Invalid compression level: ' + level);\n }\n if (strategy != exports.Z_FILTERED && strategy != exports.Z_HUFFMAN_ONLY && strategy != exports.Z_RLE && strategy != exports.Z_FIXED && strategy != exports.Z_DEFAULT_STRATEGY) {\n throw new TypeError('Invalid strategy: ' + strategy);\n }\n\n if (this._level !== level || this._strategy !== strategy) {\n var self = this;\n this.flush(binding.Z_SYNC_FLUSH, function () {\n assert(self._handle, 'zlib binding closed');\n self._handle.params(level, strategy);\n if (!self._hadError) {\n self._level = level;\n self._strategy = strategy;\n if (callback) callback();\n }\n });\n } else {\n process.nextTick(callback);\n }\n};\n\nZlib.prototype.reset = function () {\n assert(this._handle, 'zlib binding closed');\n return this._handle.reset();\n};\n\n// This is the _flush function called by the transform class,\n// internally, when the last chunk has been written.\nZlib.prototype._flush = function (callback) {\n this._transform(Buffer.alloc(0), '', callback);\n};\n\nZlib.prototype.flush = function (kind, callback) {\n var _this2 = this;\n\n var ws = this._writableState;\n\n if (typeof kind === 'function' || kind === undefined && !callback) {\n callback = kind;\n kind = binding.Z_FULL_FLUSH;\n }\n\n if (ws.ended) {\n if (callback) process.nextTick(callback);\n } else if (ws.ending) {\n if (callback) this.once('end', callback);\n } else if (ws.needDrain) {\n if (callback) {\n this.once('drain', function () {\n return _this2.flush(kind, callback);\n });\n }\n } else {\n this._flushFlag = kind;\n this.write(Buffer.alloc(0), '', callback);\n }\n};\n\nZlib.prototype.close = function (callback) {\n _close(this, callback);\n process.nextTick(emitCloseNT, this);\n};\n\nfunction _close(engine, callback) {\n if (callback) process.nextTick(callback);\n\n // Caller may invoke .close after a zlib error (which will null _handle).\n if (!engine._handle) return;\n\n engine._handle.close();\n engine._handle = null;\n}\n\nfunction emitCloseNT(self) {\n self.emit('close');\n}\n\nZlib.prototype._transform = function (chunk, encoding, cb) {\n var flushFlag;\n var ws = this._writableState;\n var ending = ws.ending || ws.ended;\n var last = ending && (!chunk || ws.length === chunk.length);\n\n if (chunk !== null && !Buffer.isBuffer(chunk)) return cb(new Error('invalid input'));\n\n if (!this._handle) return cb(new Error('zlib binding closed'));\n\n // If it's the last chunk, or a final flush, we use the Z_FINISH flush flag\n // (or whatever flag was provided using opts.finishFlush).\n // If it's explicitly flushing at some other time, then we use\n // Z_FULL_FLUSH. Otherwise, use Z_NO_FLUSH for maximum compression\n // goodness.\n if (last) flushFlag = this._finishFlushFlag;else {\n flushFlag = this._flushFlag;\n // once we've flushed the last of the queue, stop flushing and\n // go back to the normal behavior.\n if (chunk.length >= ws.length) {\n this._flushFlag = this._opts.flush || binding.Z_NO_FLUSH;\n }\n }\n\n this._processChunk(chunk, flushFlag, cb);\n};\n\nZlib.prototype._processChunk = function (chunk, flushFlag, cb) {\n var availInBefore = chunk && chunk.length;\n var availOutBefore = this._chunkSize - this._offset;\n var inOff = 0;\n\n var self = this;\n\n var async = typeof cb === 'function';\n\n if (!async) {\n var buffers = [];\n var nread = 0;\n\n var error;\n this.on('error', function (er) {\n error = er;\n });\n\n assert(this._handle, 'zlib binding closed');\n do {\n var res = this._handle.writeSync(flushFlag, chunk, // in\n inOff, // in_off\n availInBefore, // in_len\n this._buffer, // out\n this._offset, //out_off\n availOutBefore); // out_len\n } while (!this._hadError && callback(res[0], res[1]));\n\n if (this._hadError) {\n throw error;\n }\n\n if (nread >= kMaxLength) {\n _close(this);\n throw new RangeError(kRangeErrorMessage);\n }\n\n var buf = Buffer.concat(buffers, nread);\n _close(this);\n\n return buf;\n }\n\n assert(this._handle, 'zlib binding closed');\n var req = this._handle.write(flushFlag, chunk, // in\n inOff, // in_off\n availInBefore, // in_len\n this._buffer, // out\n this._offset, //out_off\n availOutBefore); // out_len\n\n req.buffer = chunk;\n req.callback = callback;\n\n function callback(availInAfter, availOutAfter) {\n // When the callback is used in an async write, the callback's\n // context is the `req` object that was created. The req object\n // is === this._handle, and that's why it's important to null\n // out the values after they are done being used. `this._handle`\n // can stay in memory longer than the callback and buffer are needed.\n if (this) {\n this.buffer = null;\n this.callback = null;\n }\n\n if (self._hadError) return;\n\n var have = availOutBefore - availOutAfter;\n assert(have >= 0, 'have should not go down');\n\n if (have > 0) {\n var out = self._buffer.slice(self._offset, self._offset + have);\n self._offset += have;\n // serve some output to the consumer.\n if (async) {\n self.push(out);\n } else {\n buffers.push(out);\n nread += out.length;\n }\n }\n\n // exhausted the output buffer, or used all the input create a new one.\n if (availOutAfter === 0 || self._offset >= self._chunkSize) {\n availOutBefore = self._chunkSize;\n self._offset = 0;\n self._buffer = Buffer.allocUnsafe(self._chunkSize);\n }\n\n if (availOutAfter === 0) {\n // Not actually done. Need to reprocess.\n // Also, update the availInBefore to the availInAfter value,\n // so that if we have to hit it a third (fourth, etc.) time,\n // it'll have the correct byte counts.\n inOff += availInBefore - availInAfter;\n availInBefore = availInAfter;\n\n if (!async) return true;\n\n var newReq = self._handle.write(flushFlag, chunk, inOff, availInBefore, self._buffer, self._offset, self._chunkSize);\n newReq.callback = callback; // this same function\n newReq.buffer = chunk;\n return;\n }\n\n if (!async) return false;\n\n // finished with the chunk.\n cb();\n }\n};\n\nutil.inherits(Deflate, Zlib);\nutil.inherits(Inflate, Zlib);\nutil.inherits(Gzip, Zlib);\nutil.inherits(Gunzip, Zlib);\nutil.inherits(DeflateRaw, Zlib);\nutil.inherits(InflateRaw, Zlib);\nutil.inherits(Unzip, Zlib);","'use strict';\n/* eslint camelcase: \"off\" */\n\nvar assert = require('assert');\n\nvar Zstream = require('pako/lib/zlib/zstream');\nvar zlib_deflate = require('pako/lib/zlib/deflate.js');\nvar zlib_inflate = require('pako/lib/zlib/inflate.js');\nvar constants = require('pako/lib/zlib/constants');\n\nfor (var key in constants) {\n exports[key] = constants[key];\n}\n\n// zlib modes\nexports.NONE = 0;\nexports.DEFLATE = 1;\nexports.INFLATE = 2;\nexports.GZIP = 3;\nexports.GUNZIP = 4;\nexports.DEFLATERAW = 5;\nexports.INFLATERAW = 6;\nexports.UNZIP = 7;\n\nvar GZIP_HEADER_ID1 = 0x1f;\nvar GZIP_HEADER_ID2 = 0x8b;\n\n/**\n * Emulate Node's zlib C++ layer for use by the JS layer in index.js\n */\nfunction Zlib(mode) {\n if (typeof mode !== 'number' || mode < exports.DEFLATE || mode > exports.UNZIP) {\n throw new TypeError('Bad argument');\n }\n\n this.dictionary = null;\n this.err = 0;\n this.flush = 0;\n this.init_done = false;\n this.level = 0;\n this.memLevel = 0;\n this.mode = mode;\n this.strategy = 0;\n this.windowBits = 0;\n this.write_in_progress = false;\n this.pending_close = false;\n this.gzip_id_bytes_read = 0;\n}\n\nZlib.prototype.close = function () {\n if (this.write_in_progress) {\n this.pending_close = true;\n return;\n }\n\n this.pending_close = false;\n\n assert(this.init_done, 'close before init');\n assert(this.mode <= exports.UNZIP);\n\n if (this.mode === exports.DEFLATE || this.mode === exports.GZIP || this.mode === exports.DEFLATERAW) {\n zlib_deflate.deflateEnd(this.strm);\n } else if (this.mode === exports.INFLATE || this.mode === exports.GUNZIP || this.mode === exports.INFLATERAW || this.mode === exports.UNZIP) {\n zlib_inflate.inflateEnd(this.strm);\n }\n\n this.mode = exports.NONE;\n\n this.dictionary = null;\n};\n\nZlib.prototype.write = function (flush, input, in_off, in_len, out, out_off, out_len) {\n return this._write(true, flush, input, in_off, in_len, out, out_off, out_len);\n};\n\nZlib.prototype.writeSync = function (flush, input, in_off, in_len, out, out_off, out_len) {\n return this._write(false, flush, input, in_off, in_len, out, out_off, out_len);\n};\n\nZlib.prototype._write = function (async, flush, input, in_off, in_len, out, out_off, out_len) {\n assert.equal(arguments.length, 8);\n\n assert(this.init_done, 'write before init');\n assert(this.mode !== exports.NONE, 'already finalized');\n assert.equal(false, this.write_in_progress, 'write already in progress');\n assert.equal(false, this.pending_close, 'close is pending');\n\n this.write_in_progress = true;\n\n assert.equal(false, flush === undefined, 'must provide flush value');\n\n this.write_in_progress = true;\n\n if (flush !== exports.Z_NO_FLUSH && flush !== exports.Z_PARTIAL_FLUSH && flush !== exports.Z_SYNC_FLUSH && flush !== exports.Z_FULL_FLUSH && flush !== exports.Z_FINISH && flush !== exports.Z_BLOCK) {\n throw new Error('Invalid flush value');\n }\n\n if (input == null) {\n input = Buffer.alloc(0);\n in_len = 0;\n in_off = 0;\n }\n\n this.strm.avail_in = in_len;\n this.strm.input = input;\n this.strm.next_in = in_off;\n this.strm.avail_out = out_len;\n this.strm.output = out;\n this.strm.next_out = out_off;\n this.flush = flush;\n\n if (!async) {\n // sync version\n this._process();\n\n if (this._checkError()) {\n return this._afterSync();\n }\n return;\n }\n\n // async version\n var self = this;\n process.nextTick(function () {\n self._process();\n self._after();\n });\n\n return this;\n};\n\nZlib.prototype._afterSync = function () {\n var avail_out = this.strm.avail_out;\n var avail_in = this.strm.avail_in;\n\n this.write_in_progress = false;\n\n return [avail_in, avail_out];\n};\n\nZlib.prototype._process = function () {\n var next_expected_header_byte = null;\n\n // If the avail_out is left at 0, then it means that it ran out\n // of room. If there was avail_out left over, then it means\n // that all of the input was consumed.\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.GZIP:\n case exports.DEFLATERAW:\n this.err = zlib_deflate.deflate(this.strm, this.flush);\n break;\n case exports.UNZIP:\n if (this.strm.avail_in > 0) {\n next_expected_header_byte = this.strm.next_in;\n }\n\n switch (this.gzip_id_bytes_read) {\n case 0:\n if (next_expected_header_byte === null) {\n break;\n }\n\n if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID1) {\n this.gzip_id_bytes_read = 1;\n next_expected_header_byte++;\n\n if (this.strm.avail_in === 1) {\n // The only available byte was already read.\n break;\n }\n } else {\n this.mode = exports.INFLATE;\n break;\n }\n\n // fallthrough\n case 1:\n if (next_expected_header_byte === null) {\n break;\n }\n\n if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID2) {\n this.gzip_id_bytes_read = 2;\n this.mode = exports.GUNZIP;\n } else {\n // There is no actual difference between INFLATE and INFLATERAW\n // (after initialization).\n this.mode = exports.INFLATE;\n }\n\n break;\n default:\n throw new Error('invalid number of gzip magic number bytes read');\n }\n\n // fallthrough\n case exports.INFLATE:\n case exports.GUNZIP:\n case exports.INFLATERAW:\n this.err = zlib_inflate.inflate(this.strm, this.flush\n\n // If data was encoded with dictionary\n );if (this.err === exports.Z_NEED_DICT && this.dictionary) {\n // Load it\n this.err = zlib_inflate.inflateSetDictionary(this.strm, this.dictionary);\n if (this.err === exports.Z_OK) {\n // And try to decode again\n this.err = zlib_inflate.inflate(this.strm, this.flush);\n } else if (this.err === exports.Z_DATA_ERROR) {\n // Both inflateSetDictionary() and inflate() return Z_DATA_ERROR.\n // Make it possible for After() to tell a bad dictionary from bad\n // input.\n this.err = exports.Z_NEED_DICT;\n }\n }\n while (this.strm.avail_in > 0 && this.mode === exports.GUNZIP && this.err === exports.Z_STREAM_END && this.strm.next_in[0] !== 0x00) {\n // Bytes remain in input buffer. Perhaps this is another compressed\n // member in the same archive, or just trailing garbage.\n // Trailing zero bytes are okay, though, since they are frequently\n // used for padding.\n\n this.reset();\n this.err = zlib_inflate.inflate(this.strm, this.flush);\n }\n break;\n default:\n throw new Error('Unknown mode ' + this.mode);\n }\n};\n\nZlib.prototype._checkError = function () {\n // Acceptable error states depend on the type of zlib stream.\n switch (this.err) {\n case exports.Z_OK:\n case exports.Z_BUF_ERROR:\n if (this.strm.avail_out !== 0 && this.flush === exports.Z_FINISH) {\n this._error('unexpected end of file');\n return false;\n }\n break;\n case exports.Z_STREAM_END:\n // normal statuses, not fatal\n break;\n case exports.Z_NEED_DICT:\n if (this.dictionary == null) {\n this._error('Missing dictionary');\n } else {\n this._error('Bad dictionary');\n }\n return false;\n default:\n // something else.\n this._error('Zlib error');\n return false;\n }\n\n return true;\n};\n\nZlib.prototype._after = function () {\n if (!this._checkError()) {\n return;\n }\n\n var avail_out = this.strm.avail_out;\n var avail_in = this.strm.avail_in;\n\n this.write_in_progress = false;\n\n // call the write() cb\n this.callback(avail_in, avail_out);\n\n if (this.pending_close) {\n this.close();\n }\n};\n\nZlib.prototype._error = function (message) {\n if (this.strm.msg) {\n message = this.strm.msg;\n }\n this.onerror(message, this.err\n\n // no hope of rescue.\n );this.write_in_progress = false;\n if (this.pending_close) {\n this.close();\n }\n};\n\nZlib.prototype.init = function (windowBits, level, memLevel, strategy, dictionary) {\n assert(arguments.length === 4 || arguments.length === 5, 'init(windowBits, level, memLevel, strategy, [dictionary])');\n\n assert(windowBits >= 8 && windowBits <= 15, 'invalid windowBits');\n assert(level >= -1 && level <= 9, 'invalid compression level');\n\n assert(memLevel >= 1 && memLevel <= 9, 'invalid memlevel');\n\n assert(strategy === exports.Z_FILTERED || strategy === exports.Z_HUFFMAN_ONLY || strategy === exports.Z_RLE || strategy === exports.Z_FIXED || strategy === exports.Z_DEFAULT_STRATEGY, 'invalid strategy');\n\n this._init(level, windowBits, memLevel, strategy, dictionary);\n this._setDictionary();\n};\n\nZlib.prototype.params = function () {\n throw new Error('deflateParams Not supported');\n};\n\nZlib.prototype.reset = function () {\n this._reset();\n this._setDictionary();\n};\n\nZlib.prototype._init = function (level, windowBits, memLevel, strategy, dictionary) {\n this.level = level;\n this.windowBits = windowBits;\n this.memLevel = memLevel;\n this.strategy = strategy;\n\n this.flush = exports.Z_NO_FLUSH;\n\n this.err = exports.Z_OK;\n\n if (this.mode === exports.GZIP || this.mode === exports.GUNZIP) {\n this.windowBits += 16;\n }\n\n if (this.mode === exports.UNZIP) {\n this.windowBits += 32;\n }\n\n if (this.mode === exports.DEFLATERAW || this.mode === exports.INFLATERAW) {\n this.windowBits = -1 * this.windowBits;\n }\n\n this.strm = new Zstream();\n\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.GZIP:\n case exports.DEFLATERAW:\n this.err = zlib_deflate.deflateInit2(this.strm, this.level, exports.Z_DEFLATED, this.windowBits, this.memLevel, this.strategy);\n break;\n case exports.INFLATE:\n case exports.GUNZIP:\n case exports.INFLATERAW:\n case exports.UNZIP:\n this.err = zlib_inflate.inflateInit2(this.strm, this.windowBits);\n break;\n default:\n throw new Error('Unknown mode ' + this.mode);\n }\n\n if (this.err !== exports.Z_OK) {\n this._error('Init error');\n }\n\n this.dictionary = dictionary;\n\n this.write_in_progress = false;\n this.init_done = true;\n};\n\nZlib.prototype._setDictionary = function () {\n if (this.dictionary == null) {\n return;\n }\n\n this.err = exports.Z_OK;\n\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.DEFLATERAW:\n this.err = zlib_deflate.deflateSetDictionary(this.strm, this.dictionary);\n break;\n default:\n break;\n }\n\n if (this.err !== exports.Z_OK) {\n this._error('Failed to set dictionary');\n }\n};\n\nZlib.prototype._reset = function () {\n this.err = exports.Z_OK;\n\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.DEFLATERAW:\n case exports.GZIP:\n this.err = zlib_deflate.deflateReset(this.strm);\n break;\n case exports.INFLATE:\n case exports.INFLATERAW:\n case exports.GUNZIP:\n this.err = zlib_inflate.inflateReset(this.strm);\n break;\n default:\n break;\n }\n\n if (this.err !== exports.Z_OK) {\n this._error('Failed to reset stream');\n }\n};\n\nexports.Zlib = Zlib;","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n}\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\nmodule.exports = ZStream;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = require('../utils/common');\nvar trees = require('./trees');\nvar adler32 = require('./adler32');\nvar crc32 = require('./crc32');\nvar msg = require('./messages');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\nvar Z_NO_FLUSH = 0;\nvar Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\nvar Z_FULL_FLUSH = 3;\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5;\n//var Z_TREES = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\n//var Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3;\n//var Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR = -5;\n//var Z_VERSION_ERROR = -6;\n\n\n/* compression levels */\n//var Z_NO_COMPRESSION = 0;\n//var Z_BEST_SPEED = 1;\n//var Z_BEST_COMPRESSION = 9;\nvar Z_DEFAULT_COMPRESSION = -1;\n\n\nvar Z_FILTERED = 1;\nvar Z_HUFFMAN_ONLY = 2;\nvar Z_RLE = 3;\nvar Z_FIXED = 4;\nvar Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\n//var Z_BINARY = 0;\n//var Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN = 2;\n\n\n/* The deflate compression method */\nvar Z_DEFLATED = 8;\n\n/*============================================================================*/\n\n\nvar MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_MEM_LEVEL = 8;\n\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\nvar D_CODES = 30;\n/* number of distance codes */\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\nvar MIN_LOOKAHEAD = (MAX_MATCH + MIN_MATCH + 1);\n\nvar PRESET_DICT = 0x20;\n\nvar INIT_STATE = 42;\nvar EXTRA_STATE = 69;\nvar NAME_STATE = 73;\nvar COMMENT_STATE = 91;\nvar HCRC_STATE = 103;\nvar BUSY_STATE = 113;\nvar FINISH_STATE = 666;\n\nvar BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nvar BS_BLOCK_DONE = 2; /* block flush performed */\nvar BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nvar BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nvar OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nfunction err(strm, errorCode) {\n strm.msg = msg[errorCode];\n return errorCode;\n}\n\nfunction rank(f) {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n}\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nfunction flush_pending(strm) {\n var s = strm.state;\n\n //_tr_flush_bits(s);\n var len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n}\n\n\nfunction flush_block_only(s, last) {\n trees._tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n}\n\n\nfunction put_byte(s, b) {\n s.pending_buf[s.pending++] = b;\n}\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nfunction putShortMSB(s, b) {\n// put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n}\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nfunction read_buf(strm, buf, start, size) {\n var len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n utils.arraySet(buf, strm.input, strm.next_in, len, start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n}\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nfunction longest_match(s, cur_match) {\n var chain_length = s.max_chain_length; /* max hash chain length */\n var scan = s.strstart; /* current string */\n var match; /* matched string */\n var len; /* length of current match */\n var best_len = s.prev_length; /* best match length so far */\n var nice_match = s.nice_match; /* stop if match long enough */\n var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n var _win = s.window; // shortcut\n\n var wmask = s.w_mask;\n var prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n var strend = s.strstart + MAX_MATCH;\n var scan_end1 = _win[scan + best_len - 1];\n var scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n}\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nfunction fill_window(s) {\n var _w_size = s.w_size;\n var p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n utils.arraySet(s.window, s.window, _w_size, _w_size, 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// var curr = s.strstart + s.lookahead;\n// var init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n}\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nfunction deflate_stored(s, flush) {\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n var max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n var max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n}\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nfunction deflate_fast(s, flush) {\n var hash_head; /* head of the hash chain */\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH - 1)) ? s.strstart : MIN_MATCH - 1);\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nfunction deflate_slow(s, flush) {\n var hash_head; /* head of hash chain */\n var bflush; /* set if current block must be flushed */\n\n var max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n}\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nfunction deflate_rle(s, flush) {\n var bflush; /* set if current block must be flushed */\n var prev; /* byte at distance one to match */\n var scan, strend; /* scan goes up to strend for length of run */\n\n var _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nfunction deflate_huff(s, flush) {\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nvar configuration_table;\n\nconfiguration_table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n\n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n];\n\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nfunction lm_init(s) {\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n}\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2);\n this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2);\n this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = new utils.Buf16(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = new utils.Buf16(2 * L_CODES + 1); /* heap used to build the Huffman trees */\n zero(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new utils.Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nfunction deflateResetKeep(strm) {\n var s;\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH;\n trees._tr_init(s);\n return Z_OK;\n}\n\n\nfunction deflateReset(strm) {\n var ret = deflateResetKeep(strm);\n if (ret === Z_OK) {\n lm_init(strm.state);\n }\n return ret;\n}\n\n\nfunction deflateSetHeader(strm, head) {\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }\n strm.state.gzhead = head;\n return Z_OK;\n}\n\n\nfunction deflateInit2(strm, level, method, windowBits, memLevel, strategy) {\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR;\n }\n var wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n var s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n\n s.window = new utils.Buf8(s.w_size * 2);\n s.head = new utils.Buf16(s.hash_size);\n s.prev = new utils.Buf16(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = new utils.Buf8(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n}\n\nfunction deflateInit(strm, level) {\n return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\n}\n\n\nfunction deflate(strm, flush) {\n var old_flush, s;\n var beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n }\n\n s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);\n }\n\n s.strm = strm; /* just in case */\n old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;\n var level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {\n var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configuration_table[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n trees._tr_align(s);\n }\n else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */\n\n trees._tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH) { return Z_OK; }\n if (s.wrap <= 0) { return Z_STREAM_END; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n}\n\nfunction deflateEnd(strm) {\n var status;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n}\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nfunction deflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n\n var s;\n var str, n;\n var wrap;\n var avail;\n var next;\n var input;\n var tmpDict;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n s = strm.state;\n wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n tmpDict = new utils.Buf8(s.w_size);\n utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n avail = strm.avail_in;\n next = strm.next_in;\n input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH) {\n str = s.strstart;\n n = s.lookahead - (MIN_MATCH - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK;\n}\n\n\nexports.deflateInit = deflateInit;\nexports.deflateInit2 = deflateInit2;\nexports.deflateReset = deflateReset;\nexports.deflateResetKeep = deflateResetKeep;\nexports.deflateSetHeader = deflateSetHeader;\nexports.deflate = deflate;\nexports.deflateEnd = deflateEnd;\nexports.deflateSetDictionary = deflateSetDictionary;\nexports.deflateInfo = 'pako deflate (from Nodeca project)';\n\n/* Not implemented\nexports.deflateBound = deflateBound;\nexports.deflateCopy = deflateCopy;\nexports.deflateParams = deflateParams;\nexports.deflatePending = deflatePending;\nexports.deflatePrime = deflatePrime;\nexports.deflateTune = deflateTune;\n*/\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\nvar utils = require('../utils/common');\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n//var Z_FILTERED = 1;\n//var Z_HUFFMAN_ONLY = 2;\n//var Z_RLE = 3;\nvar Z_FIXED = 4;\n//var Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nvar Z_BINARY = 0;\nvar Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\nvar Z_UNKNOWN = 2;\n\n/*============================================================================*/\n\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nvar STORED_BLOCK = 0;\nvar STATIC_TREES = 1;\nvar DYN_TREES = 2;\n/* The three kinds of block type */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES = 30;\n/* number of distance codes */\n\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\n\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nvar MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nvar END_BLOCK = 256;\n/* end of block literal code */\n\nvar REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nvar REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nvar REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nvar extra_lbits = /* extra bits for each length code */\n [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];\n\nvar extra_dbits = /* extra bits for each distance code */\n [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];\n\nvar extra_blbits = /* extra bits for each bit length code */\n [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];\n\nvar bl_order =\n [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nvar DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nvar static_ltree = new Array((L_CODES + 2) * 2);\nzero(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nvar static_dtree = new Array(D_CODES * 2);\nzero(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nvar _dist_code = new Array(DIST_CODE_LEN);\nzero(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nvar _length_code = new Array(MAX_MATCH - MIN_MATCH + 1);\nzero(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nvar base_length = new Array(LENGTH_CODES);\nzero(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nvar base_dist = new Array(D_CODES);\nzero(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nvar static_l_desc;\nvar static_d_desc;\nvar static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nfunction d_code(dist) {\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n}\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nfunction put_short(s, w) {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n}\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nfunction send_bits(s, value, length) {\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n}\n\n\nfunction send_code(s, c, tree) {\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n}\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nfunction bi_reverse(code, len) {\n var res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nfunction bi_flush(s) {\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n}\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nfunction gen_bitlen(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var max_code = desc.max_code;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var extra = desc.stat_desc.extra_bits;\n var base = desc.stat_desc.extra_base;\n var max_length = desc.stat_desc.max_length;\n var h; /* heap index */\n var n, m; /* iterate over the tree elements */\n var bits; /* bit length */\n var xbits; /* extra bits */\n var f; /* frequency */\n var overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n}\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nfunction gen_codes(tree, max_code, bl_count)\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n var next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */\n var code = 0; /* running code value */\n var bits; /* bit index */\n var n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);\n\n //static_init_done = true;\n}\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nfunction init_block(s) {\n var n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nfunction bi_windup(s)\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n}\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nfunction copy_block(s, buf, len, header)\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);\n s.pending += len;\n}\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nfunction smaller(tree, n, m, depth) {\n var _n2 = n * 2;\n var _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n}\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nfunction pqdownheap(s, tree, k)\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n var v = s.heap[k];\n var j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n}\n\n\n// inlined manually\n// var SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nfunction compress_block(s, ltree, dtree)\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n var dist; /* distance of matched string */\n var lc; /* match length or unmatched char (if dist == 0) */\n var lx = 0; /* running index in l_buf */\n var code; /* the code to send */\n var extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n}\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nfunction build_tree(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var elems = desc.stat_desc.elems;\n var n, m; /* iterate over heap elements */\n var max_code = -1; /* largest code with non zero frequency */\n var node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n}\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nfunction scan_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nfunction send_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nfunction build_bl_tree(s) {\n var max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n}\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nfunction send_all_trees(s, lcodes, dcodes, blcodes)\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n var rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n}\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nfunction detect_data_type(s) {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n var black_mask = 0xf3ffc07f;\n var n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n}\n\n\nvar static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nfunction _tr_init(s)\n{\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n}\n\n\n/* ===========================================================================\n * Send a stored block\n */\nfunction _tr_stored_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n}\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nfunction _tr_align(s) {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n}\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nfunction _tr_flush_block(s, buf, stored_len, last)\n//DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n var opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n var max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n}\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nfunction _tr_tally(s, dist, lc)\n// deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //var out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n}\n\nexports._tr_init = _tr_init;\nexports._tr_stored_block = _tr_stored_block;\nexports._tr_flush_block = _tr_flush_block;\nexports._tr_tally = _tr_tally;\nexports._tr_align = _tr_align;\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = require('../utils/common');\nvar adler32 = require('./adler32');\nvar crc32 = require('./crc32');\nvar inflate_fast = require('./inffast');\nvar inflate_table = require('./inftrees');\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n//var Z_NO_FLUSH = 0;\n//var Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\n//var Z_FULL_FLUSH = 3;\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5;\nvar Z_TREES = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\nvar Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3;\nvar Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR = -5;\n//var Z_VERSION_ERROR = -6;\n\n/* The deflate compression method */\nvar Z_DEFLATED = 8;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nvar HEAD = 1; /* i: waiting for magic header */\nvar FLAGS = 2; /* i: waiting for method and flags (gzip) */\nvar TIME = 3; /* i: waiting for modification time (gzip) */\nvar OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nvar EXLEN = 5; /* i: waiting for extra length (gzip) */\nvar EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nvar NAME = 7; /* i: waiting for end of file name (gzip) */\nvar COMMENT = 8; /* i: waiting for end of comment (gzip) */\nvar HCRC = 9; /* i: waiting for header crc (gzip) */\nvar DICTID = 10; /* i: waiting for dictionary check value */\nvar DICT = 11; /* waiting for inflateSetDictionary() call */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\nvar TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nvar STORED = 14; /* i: waiting for stored size (length and complement) */\nvar COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nvar COPY = 16; /* i/o: waiting for input or output to copy stored block */\nvar TABLE = 17; /* i: waiting for dynamic block table lengths */\nvar LENLENS = 18; /* i: waiting for code length code lengths */\nvar CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nvar LEN_ = 20; /* i: same as LEN below, but only first time in */\nvar LEN = 21; /* i: waiting for length/lit/eob code */\nvar LENEXT = 22; /* i: waiting for length extra bits */\nvar DIST = 23; /* i: waiting for distance code */\nvar DISTEXT = 24; /* i: waiting for distance extra bits */\nvar MATCH = 25; /* o: waiting for output space to copy string */\nvar LIT = 26; /* o: waiting for output space to write literal */\nvar CHECK = 27; /* i: waiting for 32-bit check value */\nvar LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nvar DONE = 29; /* finished check, done -- remain here until reset */\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar MEM = 31; /* got an inflate() memory error -- remain here until reset */\nvar SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\nvar DEF_WBITS = MAX_WBITS;\n\n\nfunction zswap32(q) {\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n}\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = new utils.Buf16(320); /* temporary storage for code lengths */\n this.work = new utils.Buf16(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new utils.Buf32(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\nfunction inflateResetKeep(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);\n state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK;\n}\n\nfunction inflateReset(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n}\n\nfunction inflateReset2(strm, windowBits) {\n var wrap;\n var state;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n}\n\nfunction inflateInit2(strm, windowBits) {\n var ret;\n var state;\n\n if (!strm) { return Z_STREAM_ERROR; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n}\n\nfunction inflateInit(strm) {\n return inflateInit2(strm, DEF_WBITS);\n}\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nvar virgin = true;\n\nvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\nfunction fixedtables(state) {\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n var sym;\n\n lenfix = new utils.Buf32(512);\n distfix = new utils.Buf32(32);\n\n /* literal/length table */\n sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n}\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nfunction updatewindow(strm, src, end, copy) {\n var dist;\n var state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = new utils.Buf8(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n utils.arraySet(state.window, src, end - copy, dist, state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n utils.arraySet(state.window, src, end - copy, copy, 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n}\n\nfunction inflate(strm, flush) {\n var state;\n var input, output; // input/output buffers\n var next; /* next input INDEX */\n var put; /* next output INDEX */\n var have, left; /* available input and output */\n var hold; /* bit buffer */\n var bits; /* bits in bit buffer */\n var _in, _out; /* save starting available input and output */\n var copy; /* number of stored or match bytes to copy */\n var from; /* where to copy match bytes from */\n var from_source;\n var here = 0; /* current decoding table entry */\n var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //var last; /* parent table entry */\n var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n var len; /* length to copy for repeats, bits to drop */\n var ret; /* return code */\n var hbuf = new utils.Buf8(4); /* buffer for gzip header crc calculation */\n var opts;\n\n var n; // temporary var for NEED_BITS\n\n var order = /* permutation of code lengths */\n [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n if (state.mode === TYPE) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n state.dmax = 1 << len;\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Array(state.head.extra_len);\n }\n utils.arraySet(\n state.head.extra,\n input,\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n copy,\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE;\n /* falls through */\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n utils.arraySet(output, input, next, copy, put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inflate_fast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END;\n break inf_leave;\n case BAD:\n ret = Z_DATA_ERROR;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD &&\n (state.mode < CHECK || flush !== Z_FINISH))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH) && ret === Z_OK) {\n ret = Z_BUF_ERROR;\n }\n return ret;\n}\n\nfunction inflateEnd(strm) {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR;\n }\n\n var state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK;\n}\n\nfunction inflateGetHeader(strm, head) {\n var state;\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK;\n}\n\nfunction inflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n\n var state;\n var dictid;\n var ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK;\n}\n\nexports.inflateReset = inflateReset;\nexports.inflateReset2 = inflateReset2;\nexports.inflateResetKeep = inflateResetKeep;\nexports.inflateInit = inflateInit;\nexports.inflateInit2 = inflateInit2;\nexports.inflate = inflate;\nexports.inflateEnd = inflateEnd;\nexports.inflateGetHeader = inflateGetHeader;\nexports.inflateSetDictionary = inflateSetDictionary;\nexports.inflateInfo = 'pako inflate (from Nodeca project)';\n\n/* Not implemented\nexports.inflateCopy = inflateCopy;\nexports.inflateGetDictionary = inflateGetDictionary;\nexports.inflateMark = inflateMark;\nexports.inflatePrime = inflatePrime;\nexports.inflateSync = inflateSync;\nexports.inflateSyncPoint = inflateSyncPoint;\nexports.inflateUndermine = inflateUndermine;\n*/\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nmodule.exports = function inflate_fast(strm, start) {\n var state;\n var _in; /* local strm.input */\n var last; /* have enough input while in < last */\n var _out; /* local strm.output */\n var beg; /* inflate()'s initial strm.output */\n var end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n var dmax; /* maximum distance from zlib header */\n//#endif\n var wsize; /* window size or zero if not using window */\n var whave; /* valid bytes in the window */\n var wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n var s_window; /* allocated sliding window, if wsize != 0 */\n var hold; /* local strm.hold */\n var bits; /* local strm.bits */\n var lcode; /* local strm.lencode */\n var dcode; /* local strm.distcode */\n var lmask; /* mask for first level of length codes */\n var dmask; /* mask for first level of distance codes */\n var here; /* retrieved table entry */\n var op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n var len; /* match length, unused bytes */\n var dist; /* match distance */\n var from; /* where to copy match from */\n var from_source;\n\n\n var input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n};\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = require('../utils/common');\n\nvar MAXBITS = 15;\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\nvar lbase = [ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n];\n\nvar lext = [ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n];\n\nvar dbase = [ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n];\n\nvar dext = [ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n];\n\nmodule.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts)\n{\n var bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n var len = 0; /* a code's length in bits */\n var sym = 0; /* index of code symbols */\n var min = 0, max = 0; /* minimum and maximum code lengths */\n var root = 0; /* number of index bits for root table */\n var curr = 0; /* number of index bits for current table */\n var drop = 0; /* code bits to drop for sub-table */\n var left = 0; /* number of prefix codes available */\n var used = 0; /* code entries in table used */\n var huff = 0; /* Huffman code */\n var incr; /* for incrementing code, index */\n var fill; /* index for replicating entries */\n var low; /* low bits for current root entry */\n var mask; /* mask for low root bits */\n var next; /* next available space in table */\n var base = null; /* base value table to use */\n var base_index = 0;\n// var shoextra; /* extra bits table to use */\n var end; /* use base and extra for symbol > end */\n var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n var extra = null;\n var extra_index = 0;\n\n var here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n};\n","'use strict';\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n //Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n\n\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8\n //Z_NULL: null // Use -1 or null inline, depending on var type\n};\n","\"use strict\";\n\n(function() {\n\n// ARMv6 (Raspberry Pi) has bug in bitwise operations\n// https://code.google.com/p/v8/issues/detail?id=3757\n// https://github.com/alexeyten/qr-image/issues/13\nif (process.arch === 'arm') {\n module.exports = require('./crc32buffer');\n return;\n}\n\nvar crc_table = [];\n\n(function() {\n for (var n = 0; n < 256; n++) {\n var c = n;\n for (var k = 0; k < 8; k++) {\n if (c & 1) {\n c = 0xedb88320 ^ (c >>> 1);\n } else {\n c = c >>> 1;\n }\n }\n crc_table[n] = c >>> 0;\n }\n})();\n\nfunction update(c, buf) {\n var l = buf.length;\n for (var n = 0; n < l; n++) {\n c = crc_table[(c ^ buf[n]) & 0xff] ^ (c >>> 8);\n }\n return c;\n}\n\nfunction crc32(/* arguments */) {\n var l = arguments.length;\n var c = -1;\n for (var i = 0; i < l; i++) {\n c = update(c, new Buffer(arguments[i]));\n }\n c = (c ^ -1) >>> 0;\n return c;\n}\n\nmodule.exports = crc32;\n \n})();\n","'use strict';\n\nvar crc_table = [];\n\nfor (var n = 0; n < 256; n++) {\n var c = crc_table[n] = new Buffer(4);\n c.writeUInt32BE(n, 0);\n\n for (var k = 0; k < 8; k++) {\n var b0 = c[0] & 1;\n var b1 = c[1] & 1;\n var b2 = c[2] & 1;\n var b3 = c[3] & 1;\n\n c[0] = (c[0] >> 1) ^ (b3 ? 0xed : 0);\n c[1] = (c[1] >> 1) ^ (b3 ? 0xb8 : 0) ^ (b0 ? 0x80 : 0);\n c[2] = (c[2] >> 1) ^ (b3 ? 0x83 : 0) ^ (b1 ? 0x80 : 0);\n c[3] = (c[3] >> 1) ^ (b3 ? 0x20 : 0) ^ (b2 ? 0x80 : 0);\n }\n}\n\nfunction update(c, buf) {\n var l = buf.length;\n for (var n = 0; n < l; n++) {\n var e = crc_table[c[3] ^ buf[n]];\n c[3] = e[3] ^ c[2];\n c[2] = e[2] ^ c[1];\n c[1] = e[1] ^ c[0];\n c[0] = e[0];\n }\n}\n\nfunction crc32(/* arguments */) {\n var l = arguments.length;\n var c = new Buffer(4);\n c.fill(0xff);\n\n for (var i = 0; i < l; i++) {\n update(c, new Buffer(arguments[i]));\n }\n\n c[0] = c[0] ^ 0xff;\n c[1] = c[1] ^ 0xff;\n c[2] = c[2] ^ 0xff;\n c[3] = c[3] ^ 0xff;\n\n return c.readUInt32BE(0);\n}\n\nmodule.exports = crc32;\n","\"use strict\";\n\nfunction matrix2path(matrix) {\n var N = matrix.length;\n var filled = [];\n for (var row = -1; row <= N; row++) {\n filled[row] = [];\n }\n\n var path = [];\n for (var row = 0; row < N; row++) {\n for (var col = 0; col < N; col++) {\n if (filled[row][col]) continue;\n filled[row][col] = 1;\n if (isDark(row, col)) {\n if (!isDark(row - 1, col)) {\n path.push(plot(row, col, 'right'));\n }\n } else {\n if (isDark(row, col - 1)) {\n path.push(plot(row, col, 'down'));\n }\n }\n }\n }\n return path;\n\n function isDark(row, col) {\n if (row < 0 || col < 0 || row >= N || col >= N) return false;\n return !!matrix[row][col];\n }\n\n function plot(row0, col0, dir) {\n filled[row0][col0] = 1;\n var res = [];\n res.push(['M', col0, row0 ]);\n var row = row0;\n var col = col0;\n var len = 0;\n do {\n switch (dir) {\n case 'right':\n filled[row][col] = 1;\n if (isDark(row, col)) {\n filled[row - 1][col] = 1;\n if (isDark(row - 1, col)) {\n res.push(['h', len]);\n len = 0;\n dir = 'up';\n } else {\n len++;\n col++;\n }\n } else {\n res.push(['h', len]);\n len = 0;\n dir = 'down';\n }\n break;\n case 'left':\n filled[row - 1][col - 1] = 1;\n if (isDark(row - 1, col - 1)) {\n filled[row][col - 1] = 1;\n if (isDark(row, col - 1)) {\n res.push(['h', -len]);\n len = 0;\n dir = 'down';\n } else {\n len++;\n col--;\n }\n } else {\n res.push(['h', -len]);\n len = 0;\n dir = 'up';\n }\n break;\n case 'down':\n filled[row][col - 1] = 1;\n if (isDark(row, col - 1)) {\n filled[row][col] = 1;\n if (isDark(row, col)) {\n res.push(['v', len]);\n len = 0;\n dir = 'right';\n } else {\n len++;\n row++;\n }\n } else {\n res.push(['v', len]);\n len = 0;\n dir = 'left';\n }\n break;\n case 'up':\n filled[row - 1][col] = 1;\n if (isDark(row - 1, col)) {\n filled[row - 1][col - 1] = 1;\n if (isDark(row - 1, col - 1)) {\n res.push(['v', -len]);\n len = 0;\n dir = 'left';\n } else {\n len++;\n row--;\n }\n } else {\n res.push(['v', -len]);\n len = 0;\n dir = 'right';\n }\n break;\n }\n } while (row != row0 || col != col0);\n return res;\n }\n}\n\nfunction pushSVGPath(matrix, stream, margin) {\n matrix2path(matrix).forEach(function(subpath) {\n var res = '';\n for (var k = 0; k < subpath.length; k++) {\n var item = subpath[k];\n switch (item[0]) {\n case 'M':\n res += 'M' + (item[1] + margin) + ' ' + (item[2] + margin);\n break;\n default:\n res += item.join('');\n }\n }\n res += 'z';\n stream.push(res);\n });\n}\n\nfunction SVG_object(matrix, margin) {\n var stream = [];\n pushSVGPath(matrix, stream, margin);\n\n var result = {\n size: matrix.length + 2 * margin,\n path: stream.filter(Boolean).join('')\n }\n\n return result;\n}\n\nfunction SVG(matrix, stream, margin, size) {\n var X = matrix.length + 2 * margin;\n stream.push(' 0) {\n var XY = X * size;\n stream.push('width=\"' + XY + '\" height=\"' + XY + '\" ');\n }\n stream.push('viewBox=\"0 0 ' + X + ' ' + X + '\">');\n stream.push('');\n stream.push(null);\n}\n\nfunction EPS(matrix, stream, margin) {\n var N = matrix.length;\n var scale = 9;\n var X = (N + 2 * margin) * scale;\n stream.push([\n '%!PS-Adobe-3.0 EPSF-3.0',\n '%%BoundingBox: 0 0 ' + X + ' ' + X,\n '/h { 0 rlineto } bind def',\n '/v { 0 exch neg rlineto } bind def',\n '/M { neg ' + (N + margin) + ' add moveto } bind def',\n '/z { closepath } bind def',\n scale + ' ' + scale + ' scale',\n ''\n ].join('\\n'));\n\n matrix2path(matrix).forEach(function(subpath) {\n var res = '';\n for (var k = 0; k < subpath.length; k++) {\n var item = subpath[k];\n switch (item[0]) {\n case 'M':\n res += (item[1] + margin) + ' ' + item[2] + ' M ';\n break;\n default:\n res += item[1] + ' ' + item[0] + ' ';\n }\n }\n res += 'z\\n';\n stream.push(res);\n });\n\n stream.push('fill\\n%%EOF\\n');\n stream.push(null);\n}\n\nfunction PDF(matrix, stream, margin) {\n // TODO deflate\n var N = matrix.length;\n var scale = 9;\n var X = (N + 2 * margin) * scale;\n var data = [\n '%PDF-1.0\\n\\n',\n '1 0 obj << /Type /Catalog /Pages 2 0 R >> endobj\\n',\n '2 0 obj << /Type /Pages /Count 1 /Kids [ 3 0 R ] >> endobj\\n',\n ];\n data.push('3 0 obj << /Type /Page /Parent 2 0 R /Resources <<>> ' +\n '/Contents 4 0 R /MediaBox [ 0 0 ' + X + ' ' + X + ' ] >> endobj\\n');\n\n var path = scale + ' 0 0 ' + scale + ' 0 0 cm\\n';\n path += matrix2path(matrix).map(function(subpath) {\n var res = '';\n var x, y;\n for (var k = 0; k < subpath.length; k++) {\n var item = subpath[k];\n switch (item[0]) {\n case 'M':\n x = item[1] + margin;\n y = N - item[2] + margin;\n res += x + ' ' + y + ' m ';\n break;\n case 'h':\n x += item[1];\n res += x + ' ' + y + ' l ';\n break;\n case 'v':\n y -= item[1];\n res += x + ' ' + y + ' l ';\n break;\n }\n }\n res += 'h';\n return res;\n }).join('\\n');\n path += '\\nf\\n';\n data.push('4 0 obj << /Length ' + path.length + ' >> stream\\n' +\n path + 'endstream\\nendobj\\n');\n\n var xref = 'xref\\n0 5\\n0000000000 65535 f \\n';\n for (var i = 1, l = data[0].length; i < 5; i++) {\n xref += ('0000000000' + l).substr(-10) + ' 00000 n \\n';\n l += data[i].length;\n }\n data.push(\n xref,\n 'trailer << /Root 1 0 R /Size 5 >>\\n',\n 'startxref\\n' + l + '\\n%%EOF\\n'\n );\n stream.push(data.join(''));\n stream.push(null);\n}\n\nmodule.exports = {\n svg: SVG,\n eps: EPS,\n pdf: PDF,\n svg_object: SVG_object\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nimport { NativeModules } from 'react-native';\nvar bridge = NativeModules.ReactNativeBiometrics;\n/**\n * Enum for touch id sensor type\n */\nexport var TouchID = 'TouchID';\n/**\n * Enum for face id sensor type\n */\nexport var FaceID = 'FaceID';\n/**\n * Enum for generic biometrics (this is the only value available on android)\n */\nexport var Biometrics = 'Biometrics';\nexport var BiometryTypes = {\n TouchID: TouchID,\n FaceID: FaceID,\n Biometrics: Biometrics\n};\nexport var ReactNativeBiometricsLegacy;\n(function (ReactNativeBiometricsLegacy) {\n /**\n * Returns promise that resolves to an object with object.biometryType = Biometrics | TouchID | FaceID\n * @returns {Promise} Promise that resolves to an object with details about biometrics available\n */\n function isSensorAvailable() {\n return new ReactNativeBiometrics().isSensorAvailable();\n }\n ReactNativeBiometricsLegacy.isSensorAvailable = isSensorAvailable;\n /**\n * Creates a public private key pair,returns promise that resolves to\n * an object with object.publicKey, which is the public key of the newly generated key pair\n * @returns {Promise} Promise that resolves to object with details about the newly generated public key\n */\n function createKeys() {\n return new ReactNativeBiometrics().createKeys();\n }\n ReactNativeBiometricsLegacy.createKeys = createKeys;\n /**\n * Returns promise that resolves to an object with object.keysExists = true | false\n * indicating if the keys were found to exist or not\n * @returns {Promise} Promise that resolves to object with details aobut the existence of keys\n */\n function biometricKeysExist() {\n return new ReactNativeBiometrics().biometricKeysExist();\n }\n ReactNativeBiometricsLegacy.biometricKeysExist = biometricKeysExist;\n /**\n * Returns promise that resolves to an object with true | false\n * indicating if the keys were properly deleted\n * @returns {Promise} Promise that resolves to an object with details about the deletion\n */\n function deleteKeys() {\n return new ReactNativeBiometrics().deleteKeys();\n }\n ReactNativeBiometricsLegacy.deleteKeys = deleteKeys;\n /**\n * Prompts user with biometrics dialog using the passed in prompt message and\n * returns promise that resolves to an object with object.signature,\n * which is cryptographic signature of the payload\n * @param {Object} createSignatureOptions\n * @param {string} createSignatureOptions.promptMessage\n * @param {string} createSignatureOptions.payload\n * @returns {Promise} Promise that resolves to an object cryptographic signature details\n */\n function createSignature(createSignatureOptions) {\n return new ReactNativeBiometrics().createSignature(createSignatureOptions);\n }\n ReactNativeBiometricsLegacy.createSignature = createSignature;\n /**\n * Prompts user with biometrics dialog using the passed in prompt message and\n * returns promise that resolves to an object with object.success = true if the user passes,\n * object.success = false if the user cancels, and rejects if anything fails\n * @param {Object} simplePromptOptions\n * @param {string} simplePromptOptions.promptMessage\n * @param {string} simplePromptOptions.fallbackPromptMessage\n * @returns {Promise} Promise that resolves an object with details about the biometrics result\n */\n function simplePrompt(simplePromptOptions) {\n return new ReactNativeBiometrics().simplePrompt(simplePromptOptions);\n }\n ReactNativeBiometricsLegacy.simplePrompt = simplePrompt;\n})(ReactNativeBiometricsLegacy || (ReactNativeBiometricsLegacy = {}));\nvar ReactNativeBiometrics = /** @class */ (function () {\n /**\n * @param {Object} rnBiometricsOptions\n * @param {boolean} rnBiometricsOptions.allowDeviceCredentials\n */\n function ReactNativeBiometrics(rnBiometricsOptions) {\n var _a, _b;\n this.allowDeviceCredentials = false;\n var allowDeviceCredentials = (_b = (_a = rnBiometricsOptions) === null || _a === void 0 ? void 0 : _a.allowDeviceCredentials, (_b !== null && _b !== void 0 ? _b : false));\n this.allowDeviceCredentials = allowDeviceCredentials;\n }\n /**\n * Returns promise that resolves to an object with object.biometryType = Biometrics | TouchID | FaceID\n * @returns {Promise} Promise that resolves to an object with details about biometrics available\n */\n ReactNativeBiometrics.prototype.isSensorAvailable = function () {\n return bridge.isSensorAvailable({\n allowDeviceCredentials: this.allowDeviceCredentials\n });\n };\n /**\n * Creates a public private key pair,returns promise that resolves to\n * an object with object.publicKey, which is the public key of the newly generated key pair\n * @returns {Promise} Promise that resolves to object with details about the newly generated public key\n */\n ReactNativeBiometrics.prototype.createKeys = function () {\n return bridge.createKeys({\n allowDeviceCredentials: this.allowDeviceCredentials\n });\n };\n /**\n * Returns promise that resolves to an object with object.keysExists = true | false\n * indicating if the keys were found to exist or not\n * @returns {Promise} Promise that resolves to object with details aobut the existence of keys\n */\n ReactNativeBiometrics.prototype.biometricKeysExist = function () {\n return bridge.biometricKeysExist();\n };\n /**\n * Returns promise that resolves to an object with true | false\n * indicating if the keys were properly deleted\n * @returns {Promise} Promise that resolves to an object with details about the deletion\n */\n ReactNativeBiometrics.prototype.deleteKeys = function () {\n return bridge.deleteKeys();\n };\n /**\n * Prompts user with biometrics dialog using the passed in prompt message and\n * returns promise that resolves to an object with object.signature,\n * which is cryptographic signature of the payload\n * @param {Object} createSignatureOptions\n * @param {string} createSignatureOptions.promptMessage\n * @param {string} createSignatureOptions.payload\n * @returns {Promise} Promise that resolves to an object cryptographic signature details\n */\n ReactNativeBiometrics.prototype.createSignature = function (createSignatureOptions) {\n var _a;\n createSignatureOptions.cancelButtonText = (_a = createSignatureOptions.cancelButtonText, (_a !== null && _a !== void 0 ? _a : 'Cancel'));\n return bridge.createSignature(__assign({ allowDeviceCredentials: this.allowDeviceCredentials }, createSignatureOptions));\n };\n /**\n * Prompts user with biometrics dialog using the passed in prompt message and\n * returns promise that resolves to an object with object.success = true if the user passes,\n * object.success = false if the user cancels, and rejects if anything fails\n * @param {Object} simplePromptOptions\n * @param {string} simplePromptOptions.promptMessage\n * @param {string} simplePromptOptions.fallbackPromptMessage\n * @returns {Promise} Promise that resolves an object with details about the biometrics result\n */\n ReactNativeBiometrics.prototype.simplePrompt = function (simplePromptOptions) {\n var _a, _b;\n simplePromptOptions.cancelButtonText = (_a = simplePromptOptions.cancelButtonText, (_a !== null && _a !== void 0 ? _a : 'Cancel'));\n simplePromptOptions.fallbackPromptMessage = (_b = simplePromptOptions.fallbackPromptMessage, (_b !== null && _b !== void 0 ? _b : 'Use Passcode'));\n return bridge.simplePrompt(__assign({ allowDeviceCredentials: this.allowDeviceCredentials }, simplePromptOptions));\n };\n return ReactNativeBiometrics;\n}());\nexport default ReactNativeBiometrics;\n//# sourceMappingURL=index.js.map","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Webcam\"] = factory(require(\"react\"));\n\telse\n\t\troot[\"Webcam\"] = factory(root[\"React\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_react__) {\nreturn "," \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 = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/react-webcam.tsx\");\n","import * as React from \"react\";\n\n// polyfill based on https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia\n(function polyfillGetUserMedia() {\n if (typeof window === 'undefined') {\n return;\n }\n\n // Older browsers might not implement mediaDevices at all, so we set an empty object first\n if (navigator.mediaDevices === undefined) {\n (navigator as any).mediaDevices = {};\n }\n\n // Some browsers partially implement mediaDevices. We can't just assign an object\n // with getUserMedia as it would overwrite existing properties.\n // Here, we will just add the getUserMedia property if it's missing.\n if (navigator.mediaDevices.getUserMedia === undefined) {\n navigator.mediaDevices.getUserMedia = function(constraints) {\n // First get ahold of the legacy getUserMedia, if present\n const getUserMedia =\n navigator.getUserMedia ||\n navigator.webkitGetUserMedia ||\n navigator.mozGetUserMedia ||\n navigator.msGetUserMedia;\n\n // Some browsers just don't implement it - return a rejected promise with an error\n // to keep a consistent interface\n if (!getUserMedia) {\n return Promise.reject(\n new Error(\"getUserMedia is not implemented in this browser\")\n );\n }\n\n // Otherwise, wrap the call to the old navigator.getUserMedia with a Promise\n return new Promise(function(resolve, reject) {\n getUserMedia.call(navigator, constraints, resolve, reject);\n });\n };\n }\n})();\n\nfunction hasGetUserMedia() {\n return !!(navigator.mediaDevices && navigator.mediaDevices.getUserMedia);\n}\n\ninterface ScreenshotDimensions {\n width: number;\n height: number;\n}\n\ninterface ChildrenProps {\n getScreenshot: (screenshotDimensions?: ScreenshotDimensions) => string | null;\n}\n\nexport type WebcamProps = Omit, \"ref\"> & {\n audio: boolean;\n audioConstraints?: MediaStreamConstraints[\"audio\"];\n disablePictureInPicture: boolean;\n forceScreenshotSourceSize: boolean;\n imageSmoothing: boolean;\n mirrored: boolean;\n minScreenshotHeight?: number;\n minScreenshotWidth?: number;\n onUserMedia: (stream: MediaStream) => void;\n onUserMediaError: (error: string | DOMException) => void;\n screenshotFormat: \"image/webp\" | \"image/png\" | \"image/jpeg\";\n screenshotQuality: number;\n videoConstraints?: MediaStreamConstraints[\"video\"];\n children?: (childrenProps: ChildrenProps) => JSX.Element;\n}\n\ninterface WebcamState {\n hasUserMedia: boolean;\n src?: string;\n}\n\nexport default class Webcam extends React.Component {\n static defaultProps = {\n audio: false,\n disablePictureInPicture: false,\n forceScreenshotSourceSize: false,\n imageSmoothing: true,\n mirrored: false,\n onUserMedia: () => undefined,\n onUserMediaError: () => undefined,\n screenshotFormat: \"image/webp\",\n screenshotQuality: 0.92,\n };\n\n private canvas: HTMLCanvasElement | null = null;\n\n private ctx: CanvasRenderingContext2D | null = null;\n\n private requestUserMediaId = 0;\n\n private unmounted = false;\n\n stream: MediaStream | null;\n\n video: HTMLVideoElement | null;\n\n constructor(props: WebcamProps) {\n super(props);\n this.state = {\n hasUserMedia: false\n };\n }\n\n componentDidMount() {\n const { state, props } = this;\n this.unmounted = false;\n\n if (!hasGetUserMedia()) {\n props.onUserMediaError(\"getUserMedia not supported\");\n\n return;\n }\n\n if (!state.hasUserMedia) {\n this.requestUserMedia();\n }\n\n if (props.children && typeof props.children != 'function') {\n console.warn(\"children must be a function\");\n }\n }\n\n componentDidUpdate(nextProps: WebcamProps) {\n const { props } = this;\n\n if (!hasGetUserMedia()) {\n props.onUserMediaError(\"getUserMedia not supported\");\n\n return;\n }\n\n const audioConstraintsChanged =\n JSON.stringify(nextProps.audioConstraints) !==\n JSON.stringify(props.audioConstraints);\n const videoConstraintsChanged =\n JSON.stringify(nextProps.videoConstraints) !==\n JSON.stringify(props.videoConstraints);\n const minScreenshotWidthChanged =\n nextProps.minScreenshotWidth !== props.minScreenshotWidth;\n const minScreenshotHeightChanged =\n nextProps.minScreenshotHeight !== props.minScreenshotHeight;\n if (\n videoConstraintsChanged ||\n minScreenshotWidthChanged ||\n minScreenshotHeightChanged\n ) {\n this.canvas = null;\n this.ctx = null;\n }\n if (audioConstraintsChanged || videoConstraintsChanged) {\n this.stopAndCleanup();\n this.requestUserMedia();\n }\n }\n\n componentWillUnmount() {\n this.unmounted = true;\n this.stopAndCleanup();\n }\n\n private static stopMediaStream(stream: MediaStream | null) {\n if (stream) {\n if (stream.getVideoTracks && stream.getAudioTracks) {\n stream.getVideoTracks().map(track => {\n stream.removeTrack(track);\n track.stop();\n });\n stream.getAudioTracks().map(track => {\n stream.removeTrack(track);\n track.stop()\n });\n } else {\n ((stream as unknown) as MediaStreamTrack).stop();\n }\n }\n }\n\n private stopAndCleanup() {\n const { state } = this;\n\n if (state.hasUserMedia) {\n Webcam.stopMediaStream(this.stream);\n\n if (state.src) {\n window.URL.revokeObjectURL(state.src);\n }\n }\n }\n\n getScreenshot(screenshotDimensions?: ScreenshotDimensions) {\n const { state, props } = this;\n\n if (!state.hasUserMedia) return null;\n\n const canvas = this.getCanvas(screenshotDimensions);\n return (\n canvas &&\n canvas.toDataURL(props.screenshotFormat, props.screenshotQuality)\n );\n }\n\n getCanvas(screenshotDimensions?: ScreenshotDimensions) {\n const { state, props } = this;\n\n if (!this.video) {\n return null;\n }\n\n if (!state.hasUserMedia || !this.video.videoHeight) return null;\n\n if (!this.ctx) {\n let canvasWidth = this.video.videoWidth;\n let canvasHeight = this.video.videoHeight;\n if (!this.props.forceScreenshotSourceSize) {\n const aspectRatio = canvasWidth / canvasHeight;\n\n canvasWidth = props.minScreenshotWidth || this.video.clientWidth;\n canvasHeight = canvasWidth / aspectRatio;\n\n if (\n props.minScreenshotHeight &&\n canvasHeight < props.minScreenshotHeight\n ) {\n canvasHeight = props.minScreenshotHeight;\n canvasWidth = canvasHeight * aspectRatio;\n }\n }\n\n this.canvas = document.createElement(\"canvas\");\n this.canvas.width = screenshotDimensions?.width || canvasWidth;\n this.canvas.height = screenshotDimensions?.height || canvasHeight;\n this.ctx = this.canvas.getContext(\"2d\");\n }\n\n const { ctx, canvas } = this;\n\n if (ctx && canvas) {\n\n // adjust the height and width of the canvas to the given dimensions\n canvas.width = screenshotDimensions?.width || canvas.width;\n canvas.height = screenshotDimensions?.height || canvas.height;\n\n // mirror the screenshot\n if (props.mirrored) {\n ctx.translate(canvas.width, 0);\n ctx.scale(-1, 1);\n }\n\n ctx.imageSmoothingEnabled = props.imageSmoothing;\n ctx.drawImage(this.video, 0, 0, screenshotDimensions?.width || canvas.width, screenshotDimensions?.height || canvas.height);\n\n // invert mirroring\n if (props.mirrored) {\n ctx.scale(-1, 1);\n ctx.translate(-canvas.width, 0);\n }\n }\n\n return canvas;\n }\n\n private requestUserMedia() {\n const { props } = this;\n\n const sourceSelected = (\n audioConstraints: boolean | MediaTrackConstraints | undefined,\n videoConstraints: boolean | MediaTrackConstraints | undefined,\n ) => {\n const constraints: MediaStreamConstraints = {\n video: typeof videoConstraints !== \"undefined\" ? videoConstraints : true\n };\n\n if (props.audio) {\n constraints.audio =\n typeof audioConstraints !== \"undefined\" ? audioConstraints : true;\n }\n\n this.requestUserMediaId++\n const myRequestUserMediaId = this.requestUserMediaId\n\n navigator.mediaDevices\n .getUserMedia(constraints)\n .then(stream => {\n if (this.unmounted || myRequestUserMediaId !== this.requestUserMediaId) {\n Webcam.stopMediaStream(stream);\n } else {\n this.handleUserMedia(null, stream);\n }\n })\n .catch(e => {\n this.handleUserMedia(e);\n });\n };\n\n if (\"mediaDevices\" in navigator) {\n sourceSelected(props.audioConstraints, props.videoConstraints);\n } else {\n const optionalSource = (id: string | null) => ({ optional: [{ sourceId: id }] }) as MediaTrackConstraints;\n\n const constraintToSourceId = (constraint) => {\n const { deviceId } = constraint;\n\n if (typeof deviceId === \"string\") {\n return deviceId;\n }\n\n if (Array.isArray(deviceId) && deviceId.length > 0) {\n return deviceId[0];\n }\n\n if (typeof deviceId === \"object\" && deviceId.ideal) {\n return deviceId.ideal;\n }\n\n return null;\n };\n\n // @ts-ignore: deprecated api\n MediaStreamTrack.getSources(sources => {\n let audioSource: string | null = null;\n let videoSource: string | null = null;\n\n sources.forEach((source: MediaStreamTrack) => {\n if (source.kind === \"audio\") {\n audioSource = source.id;\n } else if (source.kind === \"video\") {\n videoSource = source.id;\n }\n });\n\n const audioSourceId = constraintToSourceId(props.audioConstraints);\n if (audioSourceId) {\n audioSource = audioSourceId;\n }\n\n const videoSourceId = constraintToSourceId(props.videoConstraints);\n if (videoSourceId) {\n videoSource = videoSourceId;\n }\n\n sourceSelected(\n optionalSource(audioSource),\n optionalSource(videoSource)\n );\n });\n }\n }\n\n private handleUserMedia(err, stream?: MediaStream) {\n const { props } = this;\n\n if (err || !stream) {\n this.setState({ hasUserMedia: false });\n props.onUserMediaError(err);\n\n return;\n }\n\n this.stream = stream;\n\n try {\n if (this.video) {\n this.video.srcObject = stream;\n }\n this.setState({ hasUserMedia: true });\n } catch (error) {\n this.setState({\n hasUserMedia: true,\n src: window.URL.createObjectURL(stream)\n });\n }\n\n props.onUserMedia(stream);\n }\n\n render() {\n const { state, props } = this;\n\n const {\n audio,\n forceScreenshotSourceSize,\n disablePictureInPicture,\n onUserMedia,\n onUserMediaError,\n screenshotFormat,\n screenshotQuality,\n minScreenshotWidth,\n minScreenshotHeight,\n audioConstraints,\n videoConstraints,\n imageSmoothing,\n mirrored,\n style = {},\n children,\n ...rest\n } = props;\n\n const videoStyle = mirrored ? { ...style, transform: `${style.transform || \"\"} scaleX(-1)` } : style;\n\n const childrenProps: ChildrenProps = {\n getScreenshot: this.getScreenshot.bind(this),\n };\n\n return (\n <>\n {\n this.video = ref;\n }}\n style={videoStyle}\n {...rest}\n />\n {children && children(childrenProps)}\n \n );\n }\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE_react__;","export const VIEWBOX_WIDTH = 100;\nexport const VIEWBOX_HEIGHT = 100;\nexport const VIEWBOX_HEIGHT_HALF = 50;\nexport const VIEWBOX_CENTER_X = 50;\nexport const VIEWBOX_CENTER_Y = 50;\n","import * as React from 'react';\nimport { VIEWBOX_CENTER_X, VIEWBOX_CENTER_Y } from './constants';\n\nfunction Path({\n className,\n counterClockwise,\n dashRatio,\n pathRadius,\n strokeWidth,\n style,\n}: {\n className?: string;\n counterClockwise: boolean;\n dashRatio: number;\n pathRadius: number;\n strokeWidth: number;\n style?: object;\n}) {\n return (\n \n );\n}\n\n// SVG path description specifies how the path should be drawn\nfunction getPathDescription({\n pathRadius,\n counterClockwise,\n}: {\n pathRadius: number;\n counterClockwise: boolean;\n}) {\n const radius = pathRadius;\n const rotation = counterClockwise ? 1 : 0;\n\n // Move to center of canvas\n // Relative move to top canvas\n // Relative arc to bottom of canvas\n // Relative arc to top of canvas\n return `\n M ${VIEWBOX_CENTER_X},${VIEWBOX_CENTER_Y}\n m 0,-${radius}\n a ${radius},${radius} ${rotation} 1 1 0,${2 * radius}\n a ${radius},${radius} ${rotation} 1 1 0,-${2 * radius}\n `;\n}\n\nfunction getDashStyle({\n counterClockwise,\n dashRatio,\n pathRadius,\n}: {\n counterClockwise: boolean;\n dashRatio: number;\n pathRadius: number;\n}) {\n const diameter = Math.PI * 2 * pathRadius;\n const gapLength = (1 - dashRatio) * diameter;\n\n return {\n // Have dash be full diameter, and gap be full diameter\n strokeDasharray: `${diameter}px ${diameter}px`,\n // Shift dash backward by gapLength, so gap starts appearing at correct distance\n strokeDashoffset: `${counterClockwise ? -gapLength : gapLength}px`,\n };\n}\n\nexport default Path;\n","import * as React from 'react';\n\nimport {\n VIEWBOX_WIDTH,\n VIEWBOX_HEIGHT,\n VIEWBOX_HEIGHT_HALF,\n VIEWBOX_CENTER_X,\n VIEWBOX_CENTER_Y,\n} from './constants';\nimport Path from './Path';\nimport { CircularProgressbarDefaultProps, CircularProgressbarProps } from './types';\n\nclass CircularProgressbar extends React.Component {\n static defaultProps: CircularProgressbarDefaultProps = {\n background: false,\n backgroundPadding: 0,\n circleRatio: 1,\n classes: {\n root: 'CircularProgressbar',\n trail: 'CircularProgressbar-trail',\n path: 'CircularProgressbar-path',\n text: 'CircularProgressbar-text',\n background: 'CircularProgressbar-background',\n },\n counterClockwise: false,\n className: '',\n maxValue: 100,\n minValue: 0,\n strokeWidth: 8,\n styles: {\n root: {},\n trail: {},\n path: {},\n text: {},\n background: {},\n },\n text: '',\n };\n\n getBackgroundPadding() {\n if (!this.props.background) {\n // Don't add padding if not displaying background\n return 0;\n }\n return this.props.backgroundPadding;\n }\n\n getPathRadius() {\n // The radius of the path is defined to be in the middle, so in order for the path to\n // fit perfectly inside the 100x100 viewBox, need to subtract half the strokeWidth\n return VIEWBOX_HEIGHT_HALF - this.props.strokeWidth / 2 - this.getBackgroundPadding();\n }\n\n // Ratio of path length to trail length, as a value between 0 and 1\n getPathRatio() {\n const { value, minValue, maxValue } = this.props;\n const boundedValue = Math.min(Math.max(value, minValue), maxValue);\n return (boundedValue - minValue) / (maxValue - minValue);\n }\n\n render() {\n const {\n circleRatio,\n className,\n classes,\n counterClockwise,\n styles,\n strokeWidth,\n text,\n } = this.props;\n\n const pathRadius = this.getPathRadius();\n const pathRatio = this.getPathRatio();\n\n return (\n \n {this.props.background ? (\n \n ) : null}\n\n \n\n \n\n {text ? (\n \n {text}\n \n ) : null}\n \n );\n }\n}\n\nexport default CircularProgressbar;\n","import * as React from 'react';\n\nimport CircularProgressbar from './CircularProgressbar';\nimport { CircularProgressbarWrapperProps } from './types';\n\ntype CircularProgressbarWithChildrenProps = CircularProgressbarWrapperProps & {\n children?: React.ReactNode;\n};\n\n// This is a wrapper around CircularProgressbar that allows passing children,\n// which will be vertically and horizontally centered inside the progressbar automatically.\nfunction CircularProgressbarWithChildren(props: CircularProgressbarWithChildrenProps) {\n const { children, ...circularProgressbarProps } = props;\n\n return (\n
\n {/* Has an extra div wrapper because otherwise, adding content after\n this progressbar is spaced weirdly. */}\n
\n {/* Progressbar is not positioned absolutely, so that it can establish\n intrinsic size for props.children's content. */}\n \n\n {/* Children are positioned absolutely, and height adapts to the\n progressbar's intrinsic size. It appears below the progressbar,\n but negative margin moves it back up. */}\n {props.children ? (\n \n {props.children}\n
\n ) : null}\n
\n \n );\n}\n\nexport default CircularProgressbarWithChildren;\n","import { CircularProgressbarStyles } from './types';\n\nexport default function buildStyles({\n rotation,\n strokeLinecap,\n textColor,\n textSize,\n pathColor,\n pathTransition,\n pathTransitionDuration,\n trailColor,\n backgroundColor,\n}: {\n rotation?: number; // Number of turns, 0-1\n strokeLinecap?: any;\n textColor?: string;\n textSize?: string | number;\n pathColor?: string;\n pathTransition?: string;\n pathTransitionDuration?: number; // Measured in seconds\n trailColor?: string;\n backgroundColor?: string;\n}): CircularProgressbarStyles {\n const rotationTransform = rotation == null ? undefined : `rotate(${rotation}turn)`;\n const rotationTransformOrigin = rotation == null ? undefined : 'center center';\n\n return {\n root: {},\n path: removeUndefinedValues({\n stroke: pathColor,\n strokeLinecap: strokeLinecap,\n transform: rotationTransform,\n transformOrigin: rotationTransformOrigin,\n transition: pathTransition,\n transitionDuration: pathTransitionDuration == null ? undefined : `${pathTransitionDuration}s`,\n }),\n trail: removeUndefinedValues({\n stroke: trailColor,\n strokeLinecap: strokeLinecap,\n transform: rotationTransform,\n transformOrigin: rotationTransformOrigin,\n }),\n text: removeUndefinedValues({\n fill: textColor,\n fontSize: textSize,\n }),\n background: removeUndefinedValues({\n fill: backgroundColor,\n }),\n };\n}\n\nfunction removeUndefinedValues(obj: { [key: string]: any }) {\n Object.keys(obj).forEach((key: string) => {\n if (obj[key] == null) {\n delete obj[key];\n }\n });\n return obj;\n}\n","import React, { ReactElement } from 'react';\nimport { RenderHTMLProps } from './shared-types';\nimport RenderHTMLDebug from './RenderHTMLDebug';\nimport TRenderEngineProvider from './TRenderEngineProvider';\nimport RenderHTMLConfigProvider from './RenderHTMLConfigProvider';\nimport RenderHTMLSource from './RenderHTMLSource';\n\n/**\n * Render HTML text in native views!\n *\n * @remarks If your application uses many instances of this component, you\n * should share the render engine across those instances via the\n * {@link TRenderEngineProvider} and {@link RenderHTMLConfigProvider}\n * components, and render the HTML with {@link RenderHTMLSource} instead. That\n * should significantly increase performance.\n *\n * @warning It should never be a child of a React Native `Text` element, as the\n * layout will break.\n *\n * @public\n */\nexport default function RenderHTML(props: RenderHTMLProps): ReactElement {\n const {\n source,\n onHTMLLoaded,\n onTTreeChange,\n onDocumentMetadataLoaded,\n contentWidth,\n ...otherProps\n } = props;\n return (\n \n \n \n {React.createElement(RenderHTMLSource, {\n source,\n onHTMLLoaded,\n onTTreeChange,\n onDocumentMetadataLoaded,\n contentWidth\n })}\n \n \n \n );\n}\n","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","import React, { Fragment, PropsWithChildren } from 'react';\nimport debugMessage from './debugMessages';\nimport { RenderHTMLProps } from './shared-types';\n\nconst RenderHTMLDebug = function RenderHTMLDebug(\n props: PropsWithChildren\n) {\n if (typeof __DEV__ === 'boolean' && __DEV__) {\n if (typeof props.contentWidth !== 'number') {\n console.warn(debugMessage.contentWidth);\n }\n if ('html' in props) {\n console.warn(debugMessage.outdatedHtmlProp);\n }\n if ('uri' in props) {\n console.warn(debugMessage.outdatedUriProp);\n }\n if ('listsPrefixesRenderers' in props) {\n console.warn(debugMessage.outdatedListPrefixRenderersProps);\n }\n if ('imagesInitialDimensions' in props) {\n console.warn(debugMessage.outdatedImagesDimensions);\n }\n if ('onLinkPress' in props) {\n console.warn(debugMessage.outdatedOnLinkPressProp);\n }\n if ('enableExperimentalPercentWidth' in props) {\n console.warn(debugMessage.outdatedEnableExperimentalPercentWidth);\n }\n if ('ignoreNodesFunction' in props) {\n console.warn(debugMessage.outdatedIgnoreNodesFunction);\n }\n if ('alterNode' in props) {\n console.warn(debugMessage.outdatedAlterNode);\n }\n if ('alterChildren' in props) {\n console.warn(debugMessage.outdatedAlterChildren);\n }\n if ('alterData' in props) {\n console.warn(debugMessage.outdatedAlterData);\n }\n if ('computeImagesMaxWidth' in props) {\n console.warn(debugMessage.outdatedComputeImagesMaxWidth);\n }\n if ('triggerTREInvalidationPropNames' in props) {\n console.warn(debugMessage.outdatedTriggerTREInvalidation);\n }\n if (Array.isArray(props.allowedStyles)) {\n props.allowedStyles.forEach((s) => {\n if (s.indexOf('-') > -1) {\n console.warn(\n `Style property '${s}' of 'allowedStyles' prop array must be camelCased.`\n );\n }\n });\n }\n if (Array.isArray(props.ignoredStyles)) {\n props.ignoredStyles.forEach((s) => {\n if (s.indexOf('-') > -1) {\n console.warn(\n `Style property '${s}' of 'ignoredStyles' prop array must be camelCased.`\n );\n }\n });\n }\n }\n return {props.children};\n};\n\nexport default RenderHTMLDebug;\n","import { useMemo } from 'react';\nimport { TRenderEngineConfig } from '../shared-types';\nimport buildTREFromConfig from '../helpers/buildTREFromConfig';\nimport useProfiler from './useProfiler';\n\n/**\n * @internal\n */\nexport default function useTRenderEngine({\n allowedStyles,\n baseStyle,\n classesStyles,\n customHTMLElementModels,\n dangerouslyDisableHoisting,\n dangerouslyDisableWhitespaceCollapsing,\n domVisitors,\n emSize,\n enableCSSInlineProcessing,\n enableUserAgentStyles,\n fallbackFonts,\n htmlParserOptions,\n idsStyles,\n ignoreDomNode,\n ignoredDomTags,\n ignoredStyles,\n selectDomRoot,\n setMarkersForTNode,\n systemFonts,\n tagsStyles\n}: TRenderEngineConfig) {\n const profile = useProfiler({ name: 'TRenderEngineProvider' });\n return useMemo(() => {\n typeof __DEV__ === 'boolean' && __DEV__ && profile();\n return buildTREFromConfig({\n allowedStyles,\n baseStyle,\n classesStyles,\n customHTMLElementModels,\n dangerouslyDisableHoisting,\n dangerouslyDisableWhitespaceCollapsing,\n domVisitors,\n emSize,\n enableCSSInlineProcessing,\n enableUserAgentStyles,\n fallbackFonts,\n htmlParserOptions,\n idsStyles,\n ignoreDomNode,\n ignoredDomTags,\n ignoredStyles,\n selectDomRoot,\n setMarkersForTNode,\n systemFonts,\n tagsStyles\n });\n }, [\n profile,\n allowedStyles,\n baseStyle,\n classesStyles,\n customHTMLElementModels,\n dangerouslyDisableHoisting,\n dangerouslyDisableWhitespaceCollapsing,\n domVisitors,\n emSize,\n enableCSSInlineProcessing,\n enableUserAgentStyles,\n fallbackFonts,\n htmlParserOptions,\n idsStyles,\n ignoreDomNode,\n ignoredDomTags,\n ignoredStyles,\n selectDomRoot,\n setMarkersForTNode,\n systemFonts,\n tagsStyles\n ]);\n}\n","import { collapse } from './flow/collapse';\nimport { hoist } from './flow/hoist';\nimport { translateDocument } from './flow/translate';\nimport { ParserOptions as HTMLParserOptions } from 'htmlparser2';\nimport omit from 'ramda/src/omit';\nimport {\n CSSProcessorConfig,\n defaultCSSProcessorConfig\n} from '@native-html/css-processor';\nimport parseDocument from './dom/parseDocument';\nimport { StylesConfig } from './styles/types';\nimport { TStylesMerger } from './styles/TStylesMerger';\nimport { defaultStylesConfig } from './styles/defaults';\nimport { TStyles } from './styles/TStyles';\nimport HTMLModelRegistry from './model/HTMLModelRegistry';\nimport { HTMLModelRecord, TagName } from './model/model-types';\nimport { DefaultHTMLElementModelsStatic } from './model/defaultHTMLElementModels';\nimport { DataFlowParams } from './flow/types';\nimport {\n Document,\n Element,\n Node,\n NodeWithChildren,\n isDomElement\n} from './dom/dom-utils';\nimport { SetMarkersForTNode, TDocument } from './tree/tree-types';\nimport { DomHandlerOptions, DomVisitorCallbacks } from './dom/DomHandler';\n\nexport interface TRenderEngineOptions {\n /**\n * Customization for CSS inline processing.\n */\n readonly cssProcessorConfig?: Partial;\n /**\n * Options for htmlparser2 library parser.\n */\n readonly htmlParserOptions?: Readonly;\n /**\n * Various configuration for styling.\n */\n readonly stylesConfig?: StylesConfig;\n /**\n * Customize supported tags in the engine.\n *\n * @remarks If you need to add new tags, always use lowercase names.\n */\n readonly customizeHTMLModels?: (\n defaultHTMLElementModels: DefaultHTMLElementModelsStatic\n ) => HTMLModelRecord;\n /**\n * Remove line breaks around special east-asian characters such as defined here:\n * https://www.w3.org/TR/2020/WD-css-text-3-20200429/#line-break-transform\n *\n * @defaultValue false\n */\n readonly removeLineBreaksAroundEastAsianDiscardSet?: boolean;\n /**\n * A list of tags which should not be included in the DOM.\n */\n readonly ignoredDomTags?: string[];\n\n /**\n * An object which callbacks will be invoked when a DOM element or text node\n * has been parsed and its children attached.\n *\n * @remark Each callback is applied during parsing, thus with very little\n * overhead. However, it means that one node next siblings won't be\n * available. If you need some siblings logic, apply this logic to the\n * children of this node.\n */\n readonly domVisitors?: DomVisitorCallbacks;\n\n /**\n * Ignore specific DOM nodes.\n *\n * **Warning**: when this function is invoked, the node has not yet been\n * attached to its parent or siblings. Use the second argument (`parent`)\n * if you need to perform logic based on parent.\n *\n * @remarks The function is applied during parsing, thus with very little\n * overhead. However, it means that one node next siblings won't be\n * available.\n *\n * @returns `true` if this node should not be included in the DOM, anything\n * else otherwise.\n */\n readonly ignoreDomNode?: (\n node: Node,\n parent: NodeWithChildren\n ) => boolean | void | unknown;\n\n /**\n * Select the DOM root before TTree generation. For example, you could\n * iterate over children until you reach an article element and return this\n * element.\n *\n * @remarks Applied after DOM parsing, before normalization and TTree\n * construction. Before normalization implies that a body will be added in\n * the tree **after** selecting root.\n */\n readonly selectDomRoot?: (node: NodeWithChildren) => any;\n\n /**\n * Customize markers logic by extracting markers from TNode properties such\n * as classes, ids, attributes, tagName ...\n *\n * @remarks If you are using JavaScript, you can use module augmentation and\n * declaration merging to add properties to the {@link Markers} shape.\n */\n readonly setMarkersForTNode?: SetMarkersForTNode;\n\n /**\n * Disable hoisting. Note that your layout might break!\n */\n readonly dangerouslyDisableHoisting?: boolean;\n /**\n * Disable whitespace collapsing. Especially useful if your html is\n * being pre-processed server-side with a minifier.\n */\n readonly dangerouslyDisableWhitespaceCollapsing?: boolean;\n}\n\nfunction createStylesConfig(\n options?: TRenderEngineOptions\n): Required {\n const enableUserAgentStyles =\n typeof options?.stylesConfig?.enableUserAgentStyles === 'boolean'\n ? options.stylesConfig.enableUserAgentStyles\n : defaultStylesConfig.enableUserAgentStyles;\n const baseStyle = {\n ...(enableUserAgentStyles\n ? defaultStylesConfig.baseStyle\n : omit(['fontSize'], defaultStylesConfig.baseStyle)),\n ...options?.stylesConfig?.baseStyle\n };\n return {\n ...defaultStylesConfig,\n ...options?.stylesConfig,\n baseStyle\n };\n}\n\n/**\n * The Transient Render Engine.\n *\n * @public\n */\nexport class TRenderEngine {\n private htmlParserOptions: Readonly;\n private dataFlowParams: DataFlowParams;\n private hoistingEnabled: boolean;\n private whitespaceCollapsingEnabled: boolean;\n private selectDomRoot: TRenderEngineOptions['selectDomRoot'];\n constructor(options?: TRenderEngineOptions) {\n const stylesConfig = createStylesConfig(options);\n this.hoistingEnabled = !(options?.dangerouslyDisableHoisting ?? false);\n this.whitespaceCollapsingEnabled = !(\n options?.dangerouslyDisableWhitespaceCollapsing ?? false\n );\n const modelRegistry = new HTMLModelRegistry(options?.customizeHTMLModels);\n const userSelectedFontSize =\n options?.cssProcessorConfig?.rootFontSize ||\n stylesConfig.baseStyle?.fontSize;\n // TODO log a warning when type is string\n const stylesMerger = new TStylesMerger(stylesConfig, modelRegistry, {\n ...defaultCSSProcessorConfig,\n ...options?.cssProcessorConfig,\n rootFontSize:\n typeof userSelectedFontSize === 'number' ? userSelectedFontSize : 14\n });\n this.htmlParserOptions = {\n decodeEntities: true,\n lowerCaseTags: true,\n ignoredTags: options?.ignoredDomTags,\n ignoreNode: options?.ignoreDomNode,\n visitors: options?.domVisitors,\n ...options?.htmlParserOptions\n };\n this.dataFlowParams = {\n stylesMerger,\n modelRegistry,\n setMarkersForTNode: options?.setMarkersForTNode,\n baseStyles: new TStyles(\n stylesMerger.compileStyleDeclaration(stylesConfig.baseStyle)\n ),\n removeLineBreaksAroundEastAsianDiscardSet:\n options?.removeLineBreaksAroundEastAsianDiscardSet || false\n };\n this.selectDomRoot = options?.selectDomRoot;\n }\n\n private normalizeDocument(document: Document) {\n let body: Element | undefined;\n let head: Element | undefined;\n for (const child of document.children) {\n if (body && head) {\n break;\n }\n if (isDomElement(child) && child.tagName === 'body') {\n body = child;\n }\n if (isDomElement(child) && child.tagName === 'head') {\n head = child;\n }\n }\n //@ts-ignore\n if (!body && !head) {\n body = new Element('body', {});\n body.childNodes = document.children;\n document.children.forEach((c) => {\n c.parent = body as Element;\n c.parentNode = body as Element;\n });\n body.parent = document;\n body.parentNode = document;\n document.childNodes = [body];\n }\n return document;\n }\n\n parseDocument(html: string) {\n let document = parseDocument(html, this.htmlParserOptions);\n if (this.selectDomRoot) {\n const selected = this.selectDomRoot(document) as Document;\n if (selected && selected !== document) {\n document.childNodes = [selected];\n selected.parent = document;\n }\n }\n for (const child of document.children) {\n if (isDomElement(child) && child.tagName === 'html') {\n document = child;\n break;\n }\n }\n return this.normalizeDocument(document);\n }\n\n buildTTreeFromDoc(document: Document | Element): TDocument {\n const tdoc = translateDocument(document, this.dataFlowParams);\n const hoistedTDoc = this.hoistingEnabled ? hoist(tdoc) : tdoc;\n const collapsedTDoc = this.whitespaceCollapsingEnabled\n ? collapse(hoistedTDoc)\n : tdoc;\n return collapsedTDoc as unknown as TDocument;\n }\n\n buildTTree(html: string): TDocument {\n return this.buildTTreeFromDoc(this.parseDocument(html));\n }\n\n getHTMLElementsModels() {\n return this.dataFlowParams.modelRegistry.modelRecords;\n }\n}\n","import { TNodeImpl } from '../tree/tree-types';\n\nexport function collapse(root: TNodeImpl): TNodeImpl {\n root.collapse();\n root.trimLeft();\n root.trimRight();\n return root;\n}\n","import TBlockCtor, { TBlockImpl } from '../tree/TBlockCtor';\nimport { TNodeImpl } from '../tree/tree-types';\nimport { TPhrasingCtor } from '../tree/TPhrasingCtor';\nimport { TTextCtor } from '../tree/TTextCtor';\n\n/**\n * Wrap text nodes around TPhrasing nodes.\n * @param tnode The parent node of all elements to group.\n */\nfunction groupText(tnode: TBlockImpl): TNodeImpl {\n let newChildren: TNodeImpl[] = [];\n const wrapperInit = {\n elementModel: null,\n context: tnode.init.context,\n // We need to merge styles here to make sure\n // some React Native styles working only for the uppermost Text element\n // such as \"textAlign\" are preserved.\n parentStyles: tnode.styles,\n parent: null\n };\n let wrapper = new TPhrasingCtor(wrapperInit);\n let wrapperChildren: TNodeImpl[] = [];\n for (const child of tnode.children) {\n if (child instanceof TTextCtor || child instanceof TPhrasingCtor) {\n wrapperChildren.push(child);\n } else {\n if (wrapperChildren.length) {\n newChildren.push(wrapper);\n wrapper.bindChildren(wrapperChildren);\n wrapper = new TPhrasingCtor(wrapperInit);\n wrapperChildren = [];\n }\n newChildren.push(child);\n }\n }\n if (wrapperChildren.length) {\n wrapper.bindChildren(wrapperChildren);\n newChildren.push(wrapper);\n }\n tnode.bindChildren(newChildren);\n return tnode;\n}\n\nfunction hoistNode(tnode: TNodeImpl): TNodeImpl {\n if (tnode instanceof TTextCtor) {\n return tnode;\n }\n tnode.bindChildren(tnode.children.map(hoistNode));\n if (tnode instanceof TPhrasingCtor) {\n for (const cnode of tnode.children) {\n if (cnode instanceof TBlockCtor) {\n const newNode = new TBlockCtor(tnode.cloneInitParams());\n newNode.bindChildren(tnode.children);\n const output = groupText(newNode);\n return output;\n }\n }\n } else if (tnode instanceof TBlockCtor) {\n if (tnode.children.length > 0) {\n const output = groupText(tnode);\n return output;\n }\n }\n return tnode;\n}\n\nexport function hoist(tree: TNodeImpl): TNodeImpl {\n return hoistNode(tree);\n}\n","import { CSSProcessorConfig } from './config';\nimport { CSSInlineParseRun } from './CSSInlineParseRun';\nimport { CSSNativeParseRun } from './CSSNativeParseRun';\nimport { CSSProcessedProps } from './CSSProcessedProps';\nimport { CSSPropertiesValidationRegistry } from './CSSPropertiesValidationRegistry';\nimport { defaultCSSProcessorConfig } from './default';\nimport {\n ExtraNativeShortStyle,\n ExtraNativeTextStyle,\n ExtraNativeUntranslatedLongStyles,\n ExtraNativeViewStyle\n} from './native-types';\nimport {\n WebBlockRetainProperties,\n WebTextFlowProperties\n} from './processor-types';\n\n// https://www.w3.org/TR/CSS22/\n// https://www.w3.org/TR/css3-cascade/\n// https://www.w3.org/TR/css-cascade-4/\n// https://www.w3.org/TR/css-text-3/\n// https://www.w3.org/TR/css3-values/\n// https://www.w3.org/TR/css-values-4/\n\n/**\n * All those styles that result from processing inline styles.\n */\nexport type CSSFlattenProcessedTypes =\n CSSProcessedProps['native']['text']['flow'] &\n CSSProcessedProps['native']['block']['flow'] &\n CSSProcessedProps['native']['text']['retain'] &\n CSSProcessedProps['native']['block']['retain'];\n\n/**\n * These properties can be set to any of the supoprted CSS sizes, including em,\n * rem units and special values such as large, larger for `fontSize`, thin,\n * medium for `borderWidth`, before passed to {@link CSSProcessor.compileStyleDeclaration}.\n */\nexport type MixedSizeCSSPropertiesKeys =\n | 'fontSize'\n | 'borderWidth'\n | 'letterSpacing'\n | 'bottom'\n | 'left'\n | 'top'\n | 'right'\n | 'width'\n | 'height'\n | 'flexBasis'\n | 'borderRadius'\n | 'borderBottomLeftRadius'\n | 'borderBottomRightRadius'\n | 'borderTopLeftRadius'\n | 'borderTopRightRadius'\n | 'borderWidth'\n | 'borderBottomWidth'\n | 'borderLeftWidth'\n | 'borderRightWidth'\n | 'marginBottom'\n | 'marginLeft'\n | 'marginRight'\n | 'marginTop'\n | 'margin'\n | 'marginHorizontal'\n | 'marginVertical'\n | 'maxWidth'\n | 'maxHeight'\n | 'minWidth'\n | 'minHeight'\n | 'padding'\n | 'paddingBottom'\n | 'paddingLeft'\n | 'paddingRight'\n | 'paddingTop'\n | 'paddingHorizontal'\n | 'paddingVertical';\n\n/**\n * A Style object that can contain mixins of a subset of ViewStyle, TextStyle,\n * and special style entries such as \"whiteSpace\", \"listStyleType\".\n *\n * @remarks Also note that special lengths,\n * such as \"em\", \"rem\" units, and special values, such as \"%\" for fontSize, and\n * keyword values ('larger', 'smaller' for fontSize, 'thick', 'thin', 'medium'\n * for border*Width) will be handled as per CSS specifications on units.\n * Another special use case is fontFamily, which can be a list of font names as\n * per the CSS standard. The translated font will be selected with\n * {@link CSSProcessorConfig.isFontSupported}.\n */\nexport type MixedStyleDeclaration = Omit<\n CSSFlattenProcessedTypes,\n MixedSizeCSSPropertiesKeys\n> &\n WebTextFlowProperties &\n WebBlockRetainProperties &\n ExtraNativeTextStyle &\n ExtraNativeViewStyle &\n ExtraNativeShortStyle &\n ExtraNativeUntranslatedLongStyles &\n {\n [k in MixedSizeCSSPropertiesKeys]?: number | string;\n };\n\nexport class CSSProcessor {\n public readonly registry: CSSPropertiesValidationRegistry;\n constructor(userConfig?: Partial) {\n const config = {\n ...defaultCSSProcessorConfig,\n ...userConfig\n };\n this.registry = new CSSPropertiesValidationRegistry(config);\n }\n\n /**\n *\n * Incoming style declaration:\n * - For native styles: any RN compatible style declaration + special units\n * (font-size: medium) + relative units (smaller, larger, em, rem and perhaps vw)\n *\n * @param declaration\n */\n compileStyleDeclaration(\n declaration: MixedStyleDeclaration\n ): CSSProcessedProps {\n const parseRun = new CSSNativeParseRun(declaration, this.registry);\n return parseRun.exec();\n }\n\n compileInlineCSS(inlineCSS: string): CSSProcessedProps {\n const parseRun = new CSSInlineParseRun(inlineCSS, this.registry);\n return parseRun.exec();\n }\n}\n","import { getPropertyName } from 'css-to-react-native';\nimport { CSSParseRun } from './CSSParseRun';\nimport { MixedStyleDeclaration } from './CSSProcessor';\nimport { CSSPropertiesValidationRegistry } from './CSSPropertiesValidationRegistry';\nimport { ValidatorsType } from './makepropertiesValidators';\nimport { CSSProperties } from './processor-types';\nimport { ShortMergeRequest } from './ShortMergeRequest';\nimport { LongCSSPropertyValidator } from './validators/LongCSSPropertyValidator';\n\ntype CSSRawPropertiesList = [string, any][];\n\nexport class CSSInlineParseRun extends CSSParseRun {\n private rules: CSSRawPropertiesList;\n\n constructor(inlineCSS: string, registry: CSSPropertiesValidationRegistry) {\n super(registry);\n this.rules = this.parseInlineCSS(inlineCSS);\n this.normalizeProp = this.normalizeProp.bind(this);\n this.reduceProps = this.reduceProps.bind(this);\n }\n\n private parseInlineCSS(inlineCSS: string): CSSRawPropertiesList {\n return inlineCSS\n .split(';')\n .map((prop) => prop.split(':'))\n .reduce((acc, prop) => {\n if (prop.length === 2) {\n return [...acc, [prop[0].trim(), prop[1].trim()]];\n }\n return acc;\n }, []);\n }\n\n normalizeProp(\n rule: CSSRawPropertiesList[number],\n strict = false\n ): null | [keyof ValidatorsType, any] {\n const rawName = rule[0];\n const rawValue = rule[1];\n const camelCaseName = getPropertyName(rawName);\n if (!this.validationMap.shouldRegisterInlineProperty(camelCaseName)) {\n return null;\n }\n const validator = this.validationMap.getValidatorForProperty(camelCaseName);\n const normalizedValue = validator.normalizeInlineCSSValue(rawValue);\n if (normalizedValue === null) {\n if (strict) {\n throw new TypeError();\n }\n return null;\n }\n return [camelCaseName, normalizedValue];\n }\n\n reduceProps(\n reg: CSSProperties,\n rule: null | [keyof ValidatorsType, Exclude]\n ): CSSProperties {\n if (!rule) {\n return reg;\n }\n const [camelCaseName, normalizedValue] = rule;\n if (normalizedValue instanceof ShortMergeRequest) {\n try {\n return normalizedValue\n .map((r) => this.normalizeProp(r, true))\n .reduce(this.reduceProps, reg);\n } catch (e) {\n return reg;\n }\n }\n return {\n ...reg,\n [camelCaseName]: normalizedValue\n };\n }\n\n fillProcessedProps() {\n const rawTransformed = this.rules\n .map((r) => this.normalizeProp(r))\n .reduce(this.reduceProps, {});\n (Object.keys(rawTransformed) as Array).forEach(\n (camelCaseName) => {\n const value = rawTransformed[camelCaseName];\n const validator = this.validationMap.getValidatorForProperty(\n camelCaseName\n ) as LongCSSPropertyValidator;\n const normalizedValue = validator.normalizeInlineCSSValue(value);\n this.processedProps.withProperty(\n camelCaseName as keyof MixedStyleDeclaration,\n normalizedValue,\n validator\n );\n }\n );\n }\n}\n","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","import { CSSParseRun } from './CSSParseRun';\nimport { MixedStyleDeclaration } from './CSSProcessor';\nimport { CSSPropertiesValidationRegistry } from './CSSPropertiesValidationRegistry';\nimport { lookupRecord } from './helpers';\nimport {\n ExtraNativeTextStyle,\n NativeDirectionalStyleKeys,\n ExtraNativeLongViewStyleKeys\n} from './native-types';\nimport { CSSPropertySpecs } from './processor-types';\nimport { ShortMergeRequest } from './ShortMergeRequest';\n\nconst nativeDirectionalStyleKeys: Record =\n {\n borderBottomEndRadius: 'block',\n borderBottomStartRadius: 'block',\n borderEndColor: 'block',\n borderEndWidth: 'block',\n borderStartColor: 'block',\n borderStartWidth: 'block',\n borderTopEndRadius: 'block',\n borderTopStartRadius: 'block',\n end: 'block',\n marginEnd: 'block',\n marginStart: 'block',\n paddingEnd: 'block',\n paddingStart: 'block',\n start: 'block'\n };\n\nconst extraLongViewStyles: Record = {\n elevation: 'block',\n overflow: 'block',\n overlayColor: 'block',\n resizeMode: 'block',\n rotation: 'block',\n scaleX: 'block',\n scaleY: 'block',\n shadowColor: 'block',\n shadowOffset: 'block',\n shadowOpacity: 'block',\n shadowRadius: 'block',\n testID: 'block',\n tintColor: 'block',\n transformMatrix: 'block',\n translateX: 'block',\n translateY: 'block'\n};\n\nconst extraTextStyles: Record = {\n includeFontPadding: 'text',\n textAlignVertical: 'text',\n textShadowColor: 'text',\n textShadowOffset: 'text',\n textShadowRadius: 'text',\n writingDirection: 'text'\n};\n\nconst extraStylesRegistry = {\n ...extraTextStyles,\n ...extraLongViewStyles\n};\n\nexport class CSSNativeParseRun extends CSSParseRun {\n private declaration: MixedStyleDeclaration;\n\n constructor(\n declaration: MixedStyleDeclaration,\n registry: CSSPropertiesValidationRegistry\n ) {\n super(registry);\n this.declaration = declaration;\n }\n\n private fillProp(\n key: K,\n value: any\n ): void {\n const validator = this.validationMap.getValidatorForProperty(key);\n if (validator) {\n const normalizedValue = validator.normalizeNativeValue(value);\n if (normalizedValue instanceof ShortMergeRequest) {\n normalizedValue.forEach(([innerKey, innerValue]) => {\n this.fillProp(innerKey as any, innerValue);\n });\n } else {\n // assume longhand merge\n this.processedProps.withProperty(\n key,\n normalizedValue,\n validator as CSSPropertySpecs\n );\n }\n } else if (lookupRecord(extraStylesRegistry, key)) {\n this.processedProps.withProperty(key, value, {\n compatCategory: 'native',\n displayCategory: extraStylesRegistry[key],\n propagationCategory: 'retain'\n });\n } else if (lookupRecord(nativeDirectionalStyleKeys, key)) {\n console.warn(\n `Native style property \"${key}\" is a directional style property. These are not yet supported.`\n );\n } else {\n console.warn(\n `Native style property \"${key}\" is not supported and has been ignored.`\n );\n }\n }\n\n protected fillProcessedProps(): void {\n const declaration = this.declaration;\n for (const key of Object.keys(declaration) as Array<\n keyof MixedStyleDeclaration\n >) {\n this.fillProp(key, this.declaration[key]);\n }\n }\n}\n","import { CSSProcessorConfig, CSSPropertyNameList } from './config';\nimport makepropertiesValidators, {\n ValidatorsType\n} from './makepropertiesValidators';\nimport { GenericCSSPropertyValidator } from './validators/GenericPropertyValidator';\n\nfunction makeRegistry(list: CSSPropertyNameList) {\n const registry = {} as any;\n list.forEach((prop) => {\n registry[prop] = true;\n });\n return registry;\n}\n\nexport class CSSPropertiesValidationRegistry {\n public readonly validators: Readonly;\n public readonly ignoredPropertiesRegistry: Partial>;\n public readonly allowedPropertiesRegistry: Partial<\n Record\n > | null;\n\n constructor(config: CSSProcessorConfig) {\n this.validators = makepropertiesValidators(config);\n this.ignoredPropertiesRegistry = makeRegistry(\n config.inlinePropertiesBlacklist\n );\n this.allowedPropertiesRegistry = config.inlinePropertiesWhitelist\n ? makeRegistry(config.inlinePropertiesWhitelist)\n : null;\n }\n\n private isInlinePropertyAllowed(name: string) {\n if (this.allowedPropertiesRegistry) {\n return !!this.allowedPropertiesRegistry[name];\n }\n return !this.ignoredPropertiesRegistry[name];\n }\n\n shouldRegisterInlineProperty(name: string): name is keyof ValidatorsType {\n return (\n this.isInlinePropertyAllowed(name) &&\n !!this.validators[name as keyof ValidatorsType]\n );\n }\n\n getValidatorForProperty(\n name: T\n ): T extends keyof ValidatorsType ? GenericCSSPropertyValidator : null {\n return (this.validators[name as keyof ValidatorsType] as any) || null;\n }\n}\n","import { CSSProcessorConfig } from './config';\nimport { LongFontFamilyPropertyValidator } from './validators/LongFontFamilyPropertyValidator';\nimport { LongFloatNumberCSSPropertyValidator } from './validators/LongFloatNumberCSSPropertyValidator';\nimport { LongBorderWidthCSSPropertyValidator } from './validators/LongBorderWidthCSSPropertyValidator';\nimport { LongFontSizeCSSValidator } from './validators/LongFontSizeCSSValidator';\nimport { LongSizeCSSPropertyValidator } from './validators/LongSizeCSSPropertyValidator';\nimport { LongAspectRatioPropertyValidator } from './validators/LongAspectRatioPropertyValidator';\nimport { LongEnumerationListCSSPropertyValidator } from './validators/LongEnumerationListCSSPropertyValidator';\nimport { LongBorderStyleCSSPropertyValidator } from './validators/LongBorderStyleCSSPropertyValidator';\nimport { LongEnumerationCSSPropertyValidator } from './validators/LongEnumerationCSSPropertyValidator';\nimport { LongColorCSSPropertyValidator } from './validators/LongColorCSSPropertyValidator';\nimport { ShortFontCSSValidator } from './validators/ShortFontCSSValidator';\nimport { ShortCSSToReactNativeValidator } from './validators/ShortCSSToReactNativeValidator';\nimport { ShortFlexCSSPropertyValidator } from './validators/ShortFlexCSSPropertyValidator';\nimport { LongCSSToReactNativeValidator } from './validators/LongCSSToReactNativeValidator';\nimport { ShortCardinalCSSpropertyValidator } from './validators/ShortCardinalCSSPropertyValidator';\nimport { ShortDualNativepropertyValidator } from './validators/ShortDualNativePropertyValidator';\nimport { LongForgivingCSSPropertyValidator } from './validators/LongForgivingCSSPropertyValidator';\nimport { LongNonPercentSizeCSSPropertyValidator } from './validators/LongNonPercentSizeCSSPropertyValidator';\n\nconst nativeTranslatableBlockFlowModel = {\n inheritable: true,\n native: true,\n translatable: true,\n display: 'block'\n} as const;\n\nconst nativeTranslatableBlockRetainModel = {\n inheritable: false,\n native: true,\n translatable: true,\n display: 'block'\n} as const;\n\nconst nativeUntranslatableBlockRetainModel = {\n inheritable: false,\n native: true,\n translatable: false,\n display: 'block'\n} as const;\n\nconst nativeTranslatableTextFlowModel = {\n inheritable: true,\n native: true,\n translatable: true,\n display: 'text'\n} as const;\n\nconst nativeTranslatableTextRetainModel = {\n inheritable: false,\n native: true,\n translatable: true,\n display: 'text'\n} as const;\n\nconst webTextFlowModel = {\n inheritable: true,\n native: false,\n translatable: false,\n display: 'text'\n} as const;\n\nconst webBlockRetainModel = {\n inheritable: false,\n native: false,\n translatable: false,\n display: 'block'\n} as const;\n\nexport type ValidatorsType = ReturnType;\n\nexport default function makepropertiesValidators(config: CSSProcessorConfig) {\n return {\n background: new ShortCSSToReactNativeValidator({\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'background'\n }),\n border: new ShortCSSToReactNativeValidator({\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'border'\n }),\n borderRadius: new ShortCardinalCSSpropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'borderRadius'\n },\n {\n top: 'borderTopLeftRadius',\n right: 'borderTopRightRadius',\n bottom: 'borderBottomRightRadius',\n left: 'borderBottomLeftRadius'\n }\n ),\n borderColor: new ShortCardinalCSSpropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'borderColor'\n },\n {\n top: 'borderTopColor',\n right: 'borderRightColor',\n bottom: 'borderBottomColor',\n left: 'borderLeftColor'\n }\n ),\n borderStyle: new LongBorderStyleCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'borderStyle'\n },\n ['solid', 'dotted', 'dashed']\n ),\n borderWidth: new ShortCardinalCSSpropertyValidator(\n {\n config,\n propertyName: 'borderWidth',\n model: nativeTranslatableBlockRetainModel\n },\n {\n top: 'borderTopWidth',\n right: 'borderRightWidth',\n bottom: 'borderBottomWidth',\n left: 'borderLeftWidth'\n }\n ),\n flex: new ShortFlexCSSPropertyValidator({\n config,\n propertyName: 'flex',\n model: nativeTranslatableBlockRetainModel\n }),\n flexFlow: new ShortCSSToReactNativeValidator({\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'flexFlow'\n }),\n font: new ShortFontCSSValidator({\n config,\n model: nativeTranslatableTextFlowModel,\n propertyName: 'font'\n }),\n margin: new ShortCardinalCSSpropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'margin'\n },\n {\n top: 'marginTop',\n right: 'marginRight',\n bottom: 'marginBottom',\n left: 'marginLeft'\n }\n ),\n objectFit: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: webBlockRetainModel,\n propertyName: 'objectFit'\n },\n ['fill', 'contain', 'cover', 'none', 'scale-down']\n ),\n padding: new ShortCardinalCSSpropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'padding'\n },\n {\n top: 'paddingTop',\n right: 'paddingRight',\n bottom: 'paddingBottom',\n left: 'paddingLeft'\n }\n ),\n marginHorizontal: new ShortDualNativepropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'marginHorizontal'\n },\n ['marginLeft', 'marginRight']\n ),\n marginVertical: new ShortDualNativepropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'marginVertical'\n },\n ['marginTop', 'marginBottom']\n ),\n paddingHorizontal: new ShortDualNativepropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'paddingHorizontal'\n },\n ['paddingLeft', 'paddingRight']\n ),\n paddingVertical: new ShortDualNativepropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'paddingVertical'\n },\n ['paddingTop', 'paddingBottom']\n ),\n textDecoration: new ShortCSSToReactNativeValidator({\n config,\n model: nativeTranslatableTextRetainModel,\n propertyName: 'textDecoration'\n }),\n textDecorationColor: new LongColorCSSPropertyValidator({\n config,\n propertyName: 'textDecorationColor',\n model: nativeTranslatableTextRetainModel\n }),\n textDecorationLine: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableTextRetainModel,\n propertyName: 'textDecorationLine'\n },\n ['none', 'underline', 'line-through', 'underline line-through'] // 'overline' not supported by RN\n ),\n textDecorationStyle: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableTextRetainModel,\n propertyName: 'textDecorationStyle'\n },\n ['solid', 'double', 'dotted', 'dashed'] // 'wavy' unsupported\n ),\n color: new LongColorCSSPropertyValidator({\n config,\n propertyName: 'color',\n model: nativeTranslatableTextFlowModel\n }),\n fontFamily: new LongFontFamilyPropertyValidator({\n config,\n propertyName: 'fontFamily',\n model: nativeTranslatableTextFlowModel\n }),\n fontSize: new LongFontSizeCSSValidator({\n config,\n propertyName: 'fontSize',\n model: nativeTranslatableTextFlowModel\n }),\n fontStyle: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableTextFlowModel,\n propertyName: 'fontStyle'\n },\n ['normal', 'italic'] // 'oblique' not supported\n ),\n fontVariant: new LongEnumerationListCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableTextFlowModel,\n propertyName: 'fontVariant'\n },\n [\n 'small-caps',\n 'oldstyle-nums',\n 'lining-nums',\n 'tabular-nums',\n 'proportional-nums'\n ]\n ),\n fontWeight: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableTextFlowModel,\n propertyName: 'fontWeight'\n },\n [\n 'normal',\n 'bold',\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900'\n ]\n ),\n letterSpacing: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'letterSpacing',\n model: nativeTranslatableTextFlowModel\n }),\n // TODO handle unitless heights\n lineHeight: new LongNonPercentSizeCSSPropertyValidator({\n config,\n propertyName: 'lineHeight',\n model: nativeTranslatableTextFlowModel\n }),\n textAlign: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableTextFlowModel,\n propertyName: 'textAlign'\n },\n ['auto', 'left', 'right', 'center', 'justify']\n ),\n textTransform: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableTextFlowModel,\n propertyName: 'textTransform'\n },\n ['none', 'capitalize', 'uppercase', 'lowercase']\n ),\n whiteSpace: new LongEnumerationCSSPropertyValidator(\n { config, model: webTextFlowModel, propertyName: 'whiteSpace' },\n ['normal', 'pre']\n ),\n listStyleType: new LongForgivingCSSPropertyValidator({\n config,\n model: webTextFlowModel,\n propertyName: 'listStyleType'\n }),\n userSelect: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: webTextFlowModel,\n propertyName: 'userSelect'\n },\n ['auto', 'text', 'none', 'contain', 'all']\n ),\n alignContent: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'alignContent'\n },\n [\n 'flex-start',\n 'flex-end',\n 'center',\n 'stretch',\n 'space-between',\n 'space-around'\n ]\n ),\n alignItems: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'alignItems'\n },\n ['flex-start', 'flex-end', 'center', 'stretch', 'baseline']\n ),\n alignSelf: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'alignSelf'\n },\n ['auto', 'flex-start', 'flex-end', 'center', 'stretch', 'baseline']\n ),\n aspectRatio: new LongAspectRatioPropertyValidator({\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'aspectRatio'\n }),\n bottom: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'bottom',\n model: nativeTranslatableBlockRetainModel\n }),\n display: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'display'\n },\n ['flex', 'none']\n ),\n flexBasis: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'flexBasis',\n model: nativeTranslatableBlockRetainModel\n }),\n flexDirection: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'flexDirection'\n },\n ['row', 'column', 'row-reverse', 'column-reverse']\n ),\n flexGrow: new LongFloatNumberCSSPropertyValidator({\n config,\n propertyName: 'flexGrow',\n model: nativeTranslatableBlockRetainModel\n }),\n flexShrink: new LongFloatNumberCSSPropertyValidator({\n config,\n propertyName: 'flexShrink',\n model: nativeTranslatableBlockRetainModel\n }),\n flexWrap: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'flexWrap'\n },\n ['wrap', 'nowrap', 'wrap-reverse']\n ),\n justifyContent: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'justifyContent'\n },\n [\n 'flex-start',\n 'flex-end',\n 'center',\n 'space-between',\n 'space-around',\n 'space-evenly'\n ]\n ),\n left: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'left',\n model: nativeTranslatableBlockRetainModel\n }),\n position: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeUntranslatableBlockRetainModel,\n propertyName: 'position'\n },\n ['absolute', 'relative']\n ),\n right: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'right',\n model: nativeTranslatableBlockRetainModel\n }),\n top: new LongSizeCSSPropertyValidator({\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'top'\n }),\n backfaceVisibility: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableBlockRetainModel,\n propertyName: 'backfaceVisibility'\n },\n ['visible', 'hidden']\n ),\n backgroundColor: new LongColorCSSPropertyValidator({\n config,\n propertyName: 'backgroundColor',\n model: nativeTranslatableBlockRetainModel\n }),\n borderBottomColor: new LongColorCSSPropertyValidator({\n config,\n propertyName: 'borderBottomColor',\n model: nativeTranslatableBlockRetainModel\n }),\n borderBottomLeftRadius: new LongNonPercentSizeCSSPropertyValidator({\n config,\n propertyName: 'borderBottomLeftRadius',\n model: nativeTranslatableBlockRetainModel\n }),\n borderBottomRightRadius: new LongNonPercentSizeCSSPropertyValidator({\n config,\n propertyName: 'borderBottomRightRadius',\n model: nativeTranslatableBlockRetainModel\n }),\n borderBottomWidth: new LongBorderWidthCSSPropertyValidator({\n config,\n propertyName: 'borderBottomWidth',\n model: nativeTranslatableBlockRetainModel\n }),\n borderLeftColor: new LongColorCSSPropertyValidator({\n config,\n propertyName: 'borderLeftColor',\n model: nativeTranslatableBlockRetainModel\n }),\n borderLeftWidth: new LongBorderWidthCSSPropertyValidator({\n config,\n propertyName: 'borderLeftWidth',\n model: nativeTranslatableBlockRetainModel\n }),\n borderRightColor: new LongColorCSSPropertyValidator({\n config,\n propertyName: 'borderRightColor',\n model: nativeTranslatableBlockRetainModel\n }),\n borderRightWidth: new LongBorderWidthCSSPropertyValidator({\n config,\n propertyName: 'borderRightWidth',\n model: nativeTranslatableBlockRetainModel\n }),\n borderTopColor: new LongColorCSSPropertyValidator({\n config,\n propertyName: 'borderTopColor',\n model: nativeTranslatableBlockRetainModel\n }),\n borderTopLeftRadius: new LongNonPercentSizeCSSPropertyValidator({\n config,\n propertyName: 'borderTopLeftRadius',\n model: nativeTranslatableBlockRetainModel\n }),\n borderTopRightRadius: new LongNonPercentSizeCSSPropertyValidator({\n config,\n propertyName: 'borderTopRightRadius',\n model: nativeTranslatableBlockRetainModel\n }),\n borderTopWidth: new LongBorderWidthCSSPropertyValidator({\n config,\n propertyName: 'borderTopWidth',\n model: nativeTranslatableBlockRetainModel\n }),\n height: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'height',\n model: nativeTranslatableBlockRetainModel\n }),\n marginBottom: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'marginBottom',\n model: nativeTranslatableBlockRetainModel\n }),\n marginLeft: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'marginLeft',\n model: nativeTranslatableBlockRetainModel\n }),\n marginRight: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'marginRight',\n model: nativeTranslatableBlockRetainModel\n }),\n marginTop: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'marginTop',\n model: nativeTranslatableBlockRetainModel\n }),\n maxHeight: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'maxHeight',\n model: nativeTranslatableBlockRetainModel\n }),\n maxWidth: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'maxWidth',\n model: nativeTranslatableBlockRetainModel\n }),\n minHeight: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'minHeight',\n model: nativeTranslatableBlockRetainModel\n }),\n minWidth: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'minWidth',\n model: nativeTranslatableBlockRetainModel\n }),\n opacity: new LongFloatNumberCSSPropertyValidator({\n config,\n propertyName: 'opacity',\n model: nativeTranslatableBlockRetainModel\n }),\n paddingBottom: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'paddingBottom',\n model: nativeTranslatableBlockRetainModel\n }),\n paddingLeft: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'paddingLeft',\n model: nativeTranslatableBlockRetainModel\n }),\n paddingRight: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'paddingRight',\n model: nativeTranslatableBlockRetainModel\n }),\n paddingTop: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'paddingTop',\n model: nativeTranslatableBlockRetainModel\n }),\n transform: new LongCSSToReactNativeValidator({\n config,\n propertyName: 'transform',\n model: nativeTranslatableBlockRetainModel\n }),\n width: new LongSizeCSSPropertyValidator({\n config,\n propertyName: 'width',\n model: nativeTranslatableBlockRetainModel\n }),\n zIndex: new LongFloatNumberCSSPropertyValidator({\n config,\n propertyName: 'zIndex',\n model: nativeTranslatableBlockRetainModel\n }),\n direction: new LongEnumerationCSSPropertyValidator(\n {\n config,\n model: nativeTranslatableBlockFlowModel,\n propertyName: 'direction'\n },\n ['auto', 'ltr', 'rtl']\n )\n };\n}\n","import { LongCSSPropertyValidator } from './LongCSSPropertyValidator';\nimport normalizeFontName from './normalizeFontName';\nimport { CSSPropertyModel } from './types';\n\nconst SEPARATOR_REGEX = /,\\s*/;\n\nexport class LongFontFamilyPropertyValidator<\n C extends CSSPropertyModel\n> extends LongCSSPropertyValidator {\n normalizeRawInlineCSSValue(value: string): string | null {\n const values = value.split(SEPARATOR_REGEX);\n for (const font of values) {\n const normalizedFont = normalizeFontName(font);\n const isFontSupported =\n normalizedFont.length && this.config.isFontSupported(normalizedFont);\n if (isFontSupported) {\n return typeof isFontSupported === 'string'\n ? isFontSupported\n : normalizedFont;\n }\n }\n return null;\n }\n normalizeNativeValue(value: string) {\n return this.normalizeInlineCSSValue(value);\n }\n}\n","import { LongCSSPropertyValidator } from './LongCSSPropertyValidator';\nimport { CSSPropertyModel } from './types';\n\nexport class LongFloatNumberCSSPropertyValidator<\n C extends CSSPropertyModel\n> extends LongCSSPropertyValidator {\n normalizeRawInlineCSSValue(value: string): number | null {\n const normalizedVal = Number(value);\n if (Number.isNaN(normalizedVal)) {\n return null;\n }\n return normalizedVal;\n }\n\n normalizeNativeValue(v: string | number): number | null {\n return this.normalizeInlineCSSValue(v);\n }\n}\n","import { lookupRecord } from '../helpers';\nimport { LongNonPercentSizeCSSPropertyValidator } from './LongNonPercentSizeCSSPropertyValidator';\nimport { CSSPropertyModel } from './types';\n\nexport class LongBorderWidthCSSPropertyValidator<\n C extends CSSPropertyModel\n> extends LongNonPercentSizeCSSPropertyValidator {\n normalizeRawInlineCSSValue(value: string) {\n if (lookupRecord(this.config.absoluteBorderWidthsPixelMap, value)) {\n return this.config.absoluteBorderWidthsPixelMap[value];\n }\n return super.normalizeRawInlineCSSValue(value);\n }\n\n normalizeNativeValue(value: string | number) {\n return this.normalizeInlineCSSValue(value);\n }\n}\n","var getPrototypeOf = require(\"./getPrototypeOf.js\");\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nmodule.exports = _superPropBase;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","import { CSSLengthUnit } from '../config';\nimport { lookupRecord } from '../helpers';\nimport { LongSizeCSSPropertyValidator } from './LongSizeCSSPropertyValidator';\nimport { CSSPropertyModel } from './types';\n\nexport class LongFontSizeCSSValidator<\n C extends CSSPropertyModel\n> extends LongSizeCSSPropertyValidator {\n protected computeSize(value: number, unit: CSSLengthUnit) {\n if (unit === '%') {\n return this.computeEmSize(value / 100);\n }\n return super.computeSize(value, unit);\n }\n\n normalizeRawInlineCSSValue(value: string) {\n if (lookupRecord(this.config.absoluteFontSizesPixelMap, value)) {\n return this.config.absoluteFontSizesPixelMap[value];\n }\n if (lookupRecord(this.config.relativeFontSizesCoefficientMap, value)) {\n return this.computeEmSize(\n this.config.relativeFontSizesCoefficientMap[value]\n );\n }\n return super.normalizeRawInlineCSSValue(value);\n }\n\n normalizeNativeValue(value: string | number) {\n return this.normalizeInlineCSSValue(value);\n }\n}\n","import { LongCSSPropertyValidator } from './LongCSSPropertyValidator';\nimport { CSSPropertyModel } from './types';\n\nconst ASPECT_RATIO_REGEX = /^(\\d+)\\/(\\d+)$/;\n\nexport class LongAspectRatioPropertyValidator<\n C extends CSSPropertyModel\n> extends LongCSSPropertyValidator {\n normalizeRawInlineCSSValue(value: string): number | null {\n const match = ASPECT_RATIO_REGEX.exec(value);\n if (match) {\n const ratio = Number(match[1]) / Number(match[2]);\n return Number.isFinite(ratio) ? ratio : null;\n }\n const fallback = Number(value);\n return Number.isNaN(fallback) ? null : fallback;\n }\n\n normalizeNativeValue(value: string | number): number | null {\n return typeof value !== 'string'\n ? value\n : this.normalizeRawInlineCSSValue(value);\n }\n}\n","import { LongCSSPropertyValidator } from './LongCSSPropertyValidator';\nimport { CSSPropertyValidatorParams, CSSPropertyModel } from './types';\n\nconst WHITESPACE_REGEX = /\\s+/;\n\nexport class LongEnumerationListCSSPropertyValidator<\n C extends CSSPropertyModel\n> extends LongCSSPropertyValidator {\n public readonly allowedList: ReadonlyArray;\n constructor(params: CSSPropertyValidatorParams, allowedList: string[]) {\n super(params);\n this.allowedList = allowedList;\n }\n\n normalizeRawInlineCSSValue(value: string): string[] | null {\n const input = value.split(WHITESPACE_REGEX);\n const values: string[] = [];\n for (const item of input) {\n if (this.allowedList.indexOf(item) !== -1) {\n values.push(item);\n }\n }\n return values.length > 0 ? values : null;\n }\n}\n","import { LongEnumerationCSSPropertyValidator } from './LongEnumerationCSSPropertyValidator';\nimport { CSSPropertyModel } from './types';\n\nconst WHITESPACE_REGEX = /\\s+/;\n\nexport class LongBorderStyleCSSPropertyValidator<\n C extends CSSPropertyModel\n> extends LongEnumerationCSSPropertyValidator {\n normalizeRawInlineCSSValue(value: string): string | null {\n const normalizedVal = this.pickFirst(value);\n return normalizedVal\n ? super.normalizeRawInlineCSSValue(normalizedVal)\n : null;\n }\n\n normalizeNativeValue(value: string) {\n return this.pickFirst(value);\n }\n\n pickFirst(value: string) {\n const values = value.split(WHITESPACE_REGEX);\n return values[0] || null;\n }\n}\n","import { LongForgivingCSSPropertyValidator } from './LongForgivingCSSPropertyValidator';\nimport { CSSPropertyModel } from './types';\n\nconst COLOR_REGEX = /^(rgb|rgba|hsl|hsla)\\([\\d,%. ]+\\)|[#]?\\w+$/;\n\nexport class LongColorCSSPropertyValidator<\n C extends CSSPropertyModel\n> extends LongForgivingCSSPropertyValidator {\n normalizeRawInlineCSSValue(value: string): string | null {\n return value.match(COLOR_REGEX) ? value : null;\n }\n}\n","import { ShortCSSToReactNativeValidator } from './ShortCSSToReactNativeValidator';\nimport normalizeFontName from './normalizeFontName';\nimport { CSSPropertyModel } from './types';\nimport { ShortMergeRequest } from '../ShortMergeRequest';\n\nconst WHITESPACE_REGEX = /\\s+/;\n\nexport class ShortFontCSSValidator<\n C extends CSSPropertyModel\n> extends ShortCSSToReactNativeValidator {\n normalizeInlineCSSValue(value: string): ShortMergeRequest | null {\n // A 'font' declaration may end with a list of multiple font families.\n // We must check support for this list before processing.\n const resp = value.split(',');\n let fontFamily = null;\n if (resp.length === 1) {\n return super.normalizeInlineCSSValue(resp[0]);\n }\n const base = resp.splice(0, 1)[0];\n for (const font of resp) {\n const normalizedFont = normalizeFontName(font);\n const isFontSupported = this.config.isFontSupported(normalizedFont);\n if (isFontSupported) {\n fontFamily =\n typeof isFontSupported === 'string'\n ? isFontSupported\n : normalizedFont;\n break;\n }\n }\n return super.normalizeInlineCSSValue(\n base.split(WHITESPACE_REGEX).slice(0, -1).join(' ') +\n ' ' +\n (fontFamily || 'system')\n );\n }\n}\n","import { ShortMergeRequest } from '../ShortMergeRequest';\nimport expandCSSToRN from './expandCSSToRN';\nimport { ShortCSSPropertyValidator } from './ShortCSSPropertyValidator';\nimport { CSSPropertyValidatorParams, CSSPropertyModel } from './types';\n\n/**\n * Flex shorthand property in CSS and React Native differ significantly. This\n * validator must therefore expand this shorthand in a way consistent with the\n * specs for both platforms (native and CSS).\n */\nexport class ShortFlexCSSPropertyValidator extends ShortCSSPropertyValidator<\n CSSPropertyModel,\n number\n> {\n constructor(params: CSSPropertyValidatorParams) {\n super({ ...params, propertyName: 'flex' });\n }\n\n normalizeInlineCSSValue(value: string) {\n return new ShortMergeRequest(expandCSSToRN(this.propertyName, value));\n }\n\n /**\n * In React Native, \"flex\" is not a shorthand property, although it looks\n * like one. There is not always a tuple of (flexGrow, flexShrink,\n * flexBasis) that maps exactly to one single \"flex\" value.\n *\n * For this very reason, it is ill-advised to use \"flex\" shorthand property.\n * Use the longhand equivalent when that is possible.\n *\n * @param value\n */\n normalizeNativeValue(value: number) {\n return value;\n }\n}\n","import { CSSPropertyModel } from './types';\nimport { LongCSSPropertyValidator } from './LongCSSPropertyValidator';\nimport expandCSSToRN from './expandCSSToRN';\n\nexport class LongCSSToReactNativeValidator<\n C extends CSSPropertyModel = any\n> extends LongCSSPropertyValidator {\n normalizeRawInlineCSSValue(value: string) {\n const expanded = expandCSSToRN(this.propertyName, value);\n if (expanded) {\n return expanded[this.propertyName];\n }\n return null;\n }\n}\n","import { ShortMergeRequest } from '../ShortMergeRequest';\nimport { ShortCSSPropertyValidator } from './ShortCSSPropertyValidator';\nimport { CSSPropertyModel, ShortCSSPropertyValidatorParams } from './types';\n\nexport type Directions = {\n top: string;\n bottom: string;\n left: string;\n right: string;\n};\n\nconst WHITESPACE_REGEX = /\\s+/;\n\nexport class ShortCardinalCSSpropertyValidator<\n C extends CSSPropertyModel = any\n> extends ShortCSSPropertyValidator {\n public directions: Readonly;\n constructor(\n params: ShortCSSPropertyValidatorParams,\n /**\n * Top, Right, Bottom, Left\n */\n directions: Readonly\n ) {\n super(params);\n this.directions = directions;\n }\n\n normalizeInlineCSSValue(value: string | number) {\n if (typeof value === 'number') {\n return new ShortMergeRequest({\n [this.directions.top]: value,\n [this.directions.right]: value,\n [this.directions.bottom]: value,\n [this.directions.left]: value\n });\n }\n const values = value.split(WHITESPACE_REGEX);\n if (values.length === 4) {\n return new ShortMergeRequest({\n [this.directions.top]: values[0],\n [this.directions.right]: values[1],\n [this.directions.bottom]: values[2],\n [this.directions.left]: values[3]\n });\n }\n if (values.length === 3) {\n return new ShortMergeRequest({\n [this.directions.top]: values[0],\n [this.directions.right]: values[1],\n [this.directions.bottom]: values[2],\n [this.directions.left]: values[1]\n });\n }\n if (values.length === 2) {\n return new ShortMergeRequest({\n [this.directions.top]: values[0],\n [this.directions.right]: values[1],\n [this.directions.bottom]: values[0],\n [this.directions.left]: values[1]\n });\n }\n if (values.length === 1) {\n return new ShortMergeRequest({\n [this.directions.top]: values[0],\n [this.directions.right]: values[0],\n [this.directions.bottom]: values[0],\n [this.directions.left]: values[0]\n });\n }\n return null;\n }\n\n normalizeNativeValue(value: string | number) {\n return this.normalizeInlineCSSValue(value);\n }\n}\n","import { ShortMergeRequest } from '../ShortMergeRequest';\nimport { ShortCSSPropertyValidator } from './ShortCSSPropertyValidator';\nimport { CSSPropertyModel, ShortCSSPropertyValidatorParams } from './types';\n\nexport class ShortDualNativepropertyValidator<\n C extends CSSPropertyModel = any\n> extends ShortCSSPropertyValidator {\n public directions: [string, string];\n constructor(\n params: ShortCSSPropertyValidatorParams,\n /**\n * First direction, second direction.\n */\n directions: [string, string]\n ) {\n super(params);\n this.directions = directions;\n }\n\n // These properties are only available for native styles.\n normalizeInlineCSSValue() {\n return null;\n }\n\n normalizeNativeValue(value: string | number) {\n return new ShortMergeRequest({\n [this.directions[0]]: value,\n [this.directions[1]]: value\n });\n }\n}\n","var _curry1 =\n/*#__PURE__*/\nrequire(\"./internal/_curry1\");\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\n\n\nvar isNil =\n/*#__PURE__*/\n_curry1(function isNil(x) {\n return x == null;\n});\n\nmodule.exports = isNil;","var _curry1 =\n/*#__PURE__*/\nrequire(\"./internal/_curry1\");\n/**\n * A function that returns the `!` of its argument. It will return `true` when\n * passed false-y value, and `false` when passed a truth-y one.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Logic\n * @sig * -> Boolean\n * @param {*} a any value\n * @return {Boolean} the logical inverse of passed argument.\n * @see R.complement\n * @example\n *\n * R.not(true); //=> false\n * R.not(false); //=> true\n * R.not(0); //=> true\n * R.not(1); //=> false\n */\n\n\nvar not =\n/*#__PURE__*/\n_curry1(function not(a) {\n return !a;\n});\n\nmodule.exports = not;","function _pipe(f, g) {\n return function () {\n return g.call(this, f.apply(this, arguments));\n };\n}\n\nmodule.exports = _pipe;","var _curry3 =\n/*#__PURE__*/\nrequire(\"./internal/_curry3\");\n\nvar _reduce =\n/*#__PURE__*/\nrequire(\"./internal/_reduce\");\n/**\n * Returns a single item by iterating through the list, successively calling\n * the iterator function and passing it an accumulator value and the current\n * value from the array, and then passing the result to the next call.\n *\n * The iterator function receives two values: *(acc, value)*. It may use\n * [`R.reduced`](#reduced) to shortcut the iteration.\n *\n * The arguments' order of [`reduceRight`](#reduceRight)'s iterator function\n * is *(value, acc)*.\n *\n * Note: `R.reduce` does not skip deleted or unassigned indices (sparse\n * arrays), unlike the native `Array.prototype.reduce` method. For more details\n * on this behavior, see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce#Description\n *\n * Dispatches to the `reduce` method of the third argument, if present. When\n * doing so, it is up to the user to handle the [`R.reduced`](#reduced)\n * shortcuting, as this is not implemented by `reduce`.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig ((a, b) -> a) -> a -> [b] -> a\n * @param {Function} fn The iterator function. Receives two values, the accumulator and the\n * current element from the array.\n * @param {*} acc The accumulator value.\n * @param {Array} list The list to iterate over.\n * @return {*} The final, accumulated value.\n * @see R.reduced, R.addIndex, R.reduceRight\n * @example\n *\n * R.reduce(R.subtract, 0, [1, 2, 3, 4]) // => ((((0 - 1) - 2) - 3) - 4) = -10\n * // - -10\n * // / \\ / \\\n * // - 4 -6 4\n * // / \\ / \\\n * // - 3 ==> -3 3\n * // / \\ / \\\n * // - 2 -1 2\n * // / \\ / \\\n * // 0 1 0 1\n *\n * @symb R.reduce(f, a, [b, c, d]) = f(f(f(a, b), c), d)\n */\n\n\nvar reduce =\n/*#__PURE__*/\n_curry3(_reduce);\n\nmodule.exports = reduce;","var _isArrayLike =\n/*#__PURE__*/\nrequire(\"./_isArrayLike\");\n\nvar _xwrap =\n/*#__PURE__*/\nrequire(\"./_xwrap\");\n\nvar bind =\n/*#__PURE__*/\nrequire(\"../bind\");\n\nfunction _arrayReduce(xf, acc, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n acc = xf['@@transducer/step'](acc, list[idx]);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n idx += 1;\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _iterableReduce(xf, acc, iter) {\n var step = iter.next();\n\n while (!step.done) {\n acc = xf['@@transducer/step'](acc, step.value);\n\n if (acc && acc['@@transducer/reduced']) {\n acc = acc['@@transducer/value'];\n break;\n }\n\n step = iter.next();\n }\n\n return xf['@@transducer/result'](acc);\n}\n\nfunction _methodReduce(xf, acc, obj, methodName) {\n return xf['@@transducer/result'](obj[methodName](bind(xf['@@transducer/step'], xf), acc));\n}\n\nvar symIterator = typeof Symbol !== 'undefined' ? Symbol.iterator : '@@iterator';\n\nfunction _reduce(fn, acc, list) {\n if (typeof fn === 'function') {\n fn = _xwrap(fn);\n }\n\n if (_isArrayLike(list)) {\n return _arrayReduce(fn, acc, list);\n }\n\n if (typeof list['fantasy-land/reduce'] === 'function') {\n return _methodReduce(fn, acc, list, 'fantasy-land/reduce');\n }\n\n if (list[symIterator] != null) {\n return _iterableReduce(fn, acc, list[symIterator]());\n }\n\n if (typeof list.next === 'function') {\n return _iterableReduce(fn, acc, list);\n }\n\n if (typeof list.reduce === 'function') {\n return _methodReduce(fn, acc, list, 'reduce');\n }\n\n throw new TypeError('reduce: list must be array or iterable');\n}\n\nmodule.exports = _reduce;","var _curry1 =\n/*#__PURE__*/\nrequire(\"./_curry1\");\n\nvar _isArray =\n/*#__PURE__*/\nrequire(\"./_isArray\");\n\nvar _isString =\n/*#__PURE__*/\nrequire(\"./_isString\");\n/**\n * Tests whether or not an object is similar to an array.\n *\n * @private\n * @category Type\n * @category List\n * @sig * -> Boolean\n * @param {*} x The object to test.\n * @return {Boolean} `true` if `x` has a numeric length property and extreme indices defined; `false` otherwise.\n * @example\n *\n * _isArrayLike([]); //=> true\n * _isArrayLike(true); //=> false\n * _isArrayLike({}); //=> false\n * _isArrayLike({length: 10}); //=> false\n * _isArrayLike({0: 'zero', 9: 'nine', length: 10}); //=> true\n */\n\n\nvar _isArrayLike =\n/*#__PURE__*/\n_curry1(function isArrayLike(x) {\n if (_isArray(x)) {\n return true;\n }\n\n if (!x) {\n return false;\n }\n\n if (typeof x !== 'object') {\n return false;\n }\n\n if (_isString(x)) {\n return false;\n }\n\n if (x.nodeType === 1) {\n return !!x.length;\n }\n\n if (x.length === 0) {\n return true;\n }\n\n if (x.length > 0) {\n return x.hasOwnProperty(0) && x.hasOwnProperty(x.length - 1);\n }\n\n return false;\n});\n\nmodule.exports = _isArrayLike;","var XWrap =\n/*#__PURE__*/\nfunction () {\n function XWrap(fn) {\n this.f = fn;\n }\n\n XWrap.prototype['@@transducer/init'] = function () {\n throw new Error('init not implemented on XWrap');\n };\n\n XWrap.prototype['@@transducer/result'] = function (acc) {\n return acc;\n };\n\n XWrap.prototype['@@transducer/step'] = function (acc, x) {\n return this.f(acc, x);\n };\n\n return XWrap;\n}();\n\nfunction _xwrap(fn) {\n return new XWrap(fn);\n}\n\nmodule.exports = _xwrap;","var _arity =\n/*#__PURE__*/\nrequire(\"./internal/_arity\");\n\nvar _curry2 =\n/*#__PURE__*/\nrequire(\"./internal/_curry2\");\n/**\n * Creates a function that is bound to a context.\n * Note: `R.bind` does not provide the additional argument-binding capabilities of\n * [Function.prototype.bind](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind).\n *\n * @func\n * @memberOf R\n * @since v0.6.0\n * @category Function\n * @category Object\n * @sig (* -> *) -> {*} -> (* -> *)\n * @param {Function} fn The function to bind to context\n * @param {Object} thisObj The context to bind `fn` to\n * @return {Function} A function that will execute in the context of `thisObj`.\n * @see R.partial\n * @example\n *\n * const log = R.bind(console.log, console);\n * R.pipe(R.assoc('a', 2), R.tap(log), R.assoc('a', 3))({a: 1}); //=> {a: 3}\n * // logs {a: 2}\n * @symb R.bind(f, o)(a, b) = f.call(o, a, b)\n */\n\n\nvar bind =\n/*#__PURE__*/\n_curry2(function bind(fn, thisObj) {\n return _arity(fn.length, function () {\n return fn.apply(thisObj, arguments);\n });\n});\n\nmodule.exports = bind;","var _checkForMethod =\n/*#__PURE__*/\nrequire(\"./internal/_checkForMethod\");\n\nvar _curry1 =\n/*#__PURE__*/\nrequire(\"./internal/_curry1\");\n\nvar slice =\n/*#__PURE__*/\nrequire(\"./slice\");\n/**\n * Returns all but the first element of the given list or string (or object\n * with a `tail` method).\n *\n * Dispatches to the `slice` method of the first argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {*} list\n * @return {*}\n * @see R.head, R.init, R.last\n * @example\n *\n * R.tail([1, 2, 3]); //=> [2, 3]\n * R.tail([1, 2]); //=> [2]\n * R.tail([1]); //=> []\n * R.tail([]); //=> []\n *\n * R.tail('abc'); //=> 'bc'\n * R.tail('ab'); //=> 'b'\n * R.tail('a'); //=> ''\n * R.tail(''); //=> ''\n */\n\n\nvar tail =\n/*#__PURE__*/\n_curry1(\n/*#__PURE__*/\n_checkForMethod('tail',\n/*#__PURE__*/\nslice(1, Infinity)));\n\nmodule.exports = tail;","var _checkForMethod =\n/*#__PURE__*/\nrequire(\"./internal/_checkForMethod\");\n\nvar _curry3 =\n/*#__PURE__*/\nrequire(\"./internal/_curry3\");\n/**\n * Returns the elements of the given list or string (or object with a `slice`\n * method) from `fromIndex` (inclusive) to `toIndex` (exclusive).\n *\n * Dispatches to the `slice` method of the third argument, if present.\n *\n * @func\n * @memberOf R\n * @since v0.1.4\n * @category List\n * @sig Number -> Number -> [a] -> [a]\n * @sig Number -> Number -> String -> String\n * @param {Number} fromIndex The start index (inclusive).\n * @param {Number} toIndex The end index (exclusive).\n * @param {*} list\n * @return {*}\n * @example\n *\n * R.slice(1, 3, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(1, Infinity, ['a', 'b', 'c', 'd']); //=> ['b', 'c', 'd']\n * R.slice(0, -1, ['a', 'b', 'c', 'd']); //=> ['a', 'b', 'c']\n * R.slice(-3, -1, ['a', 'b', 'c', 'd']); //=> ['b', 'c']\n * R.slice(0, 3, 'ramda'); //=> 'ram'\n */\n\n\nvar slice =\n/*#__PURE__*/\n_curry3(\n/*#__PURE__*/\n_checkForMethod('slice', function slice(fromIndex, toIndex, list) {\n return Array.prototype.slice.call(list, fromIndex, toIndex);\n}));\n\nmodule.exports = slice;","var _curry1 =\n/*#__PURE__*/\nrequire(\"./internal/_curry1\");\n\nvar _isString =\n/*#__PURE__*/\nrequire(\"./internal/_isString\");\n/**\n * Returns a new list or string with the elements or characters in reverse\n * order.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category List\n * @sig [a] -> [a]\n * @sig String -> String\n * @param {Array|String} list\n * @return {Array|String}\n * @example\n *\n * R.reverse([1, 2, 3]); //=> [3, 2, 1]\n * R.reverse([1, 2]); //=> [2, 1]\n * R.reverse([1]); //=> [1]\n * R.reverse([]); //=> []\n *\n * R.reverse('abc'); //=> 'cba'\n * R.reverse('ab'); //=> 'ba'\n * R.reverse('a'); //=> 'a'\n * R.reverse(''); //=> ''\n */\n\n\nvar reverse =\n/*#__PURE__*/\n_curry1(function reverse(list) {\n return _isString(list) ? list.split('').reverse().join('') : Array.prototype.slice.call(list, 0).reverse();\n});\n\nmodule.exports = reverse;","import { Markers } from './tree-types';\n\nconst markersPrototype: Markers = {\n anchor: false,\n edits: 'none',\n lang: 'en',\n olNestLevel: -1,\n ulNestLevel: -1,\n direction: 'ltr',\n extend(this: Markers) {\n return Object.create(this);\n },\n toString() {\n let print = 'Markers {\\n';\n for (const key in this) {\n //@ts-ignore\n const val = this[key];\n if (typeof val !== 'function') {\n print += ` ${key}: ${JSON.stringify(val)}\\n`;\n }\n }\n return print + '}';\n }\n};\n\nexport default markersPrototype;\n","import { TNode, TNodePrintOptions } from './tree-types';\n\nfunction printTableStyles(styles: Record) {\n const entries = Object.entries(styles);\n return entries.reduce((prev, [name, val]) => {\n return `${prev}${prev ? ',' : ''} ${name}: ${JSON.stringify(val)}`;\n }, '');\n}\n\nfunction tnodePropertiesString(\n tnode: TNode,\n { withNodeIndex, withStyles }: TNodePrintOptions\n) {\n const tagPrint = tnode.tagName ? `tagName=\"${tnode.tagName}\"` : 'anonymous';\n const unregisteredPrint = tnode.isUnregistered ? 'unregistered' : null;\n const indexPrint = withNodeIndex ? `nodeIndex={${tnode.nodeIndex}}` : null;\n const idPrint = tnode.id ? `id=${tnode.id}` : null;\n const classesPrint = tnode.classes?.length\n ? `classes={[${tnode.classes.join(', ')}]}`\n : null;\n const dataPrint =\n tnode.type === 'text' ? `data=${JSON.stringify(tnode.data)}` : null;\n const anchorPrint =\n typeof tnode.attributes.href === 'string'\n ? `href=${JSON.stringify(tnode.attributes.href)}`\n : null;\n const srcPrint =\n typeof tnode.attributes.src === 'string'\n ? `src=${JSON.stringify(tnode.attributes.src)}`\n : null;\n const pstyles = withStyles ? printTableStyles(tnode.getNativeStyles()) : null;\n const nativeStylesPrint = pstyles ? `nativeStyles={{${pstyles} }}` : null;\n const oStyles = withStyles ? printTableStyles(tnode.getWebStyles()) : null;\n const webStylesPrint = oStyles ? `webStyles={{${oStyles}}}` : null;\n const detailsPrint = [\n tagPrint,\n unregisteredPrint,\n indexPrint,\n idPrint,\n classesPrint,\n dataPrint,\n anchorPrint,\n srcPrint,\n nativeStylesPrint,\n webStylesPrint\n ]\n .filter((p) => p !== null)\n .join(' ');\n return `<${tnode.displayName} ${detailsPrint}`;\n}\n\ninterface TNodePrintState {\n parentLeftPrefix: string;\n isChild: boolean;\n isLast: boolean;\n}\n\nexport default function tnodeSnapshot(\n tnode: TNode,\n params: Partial & TNodePrintOptions\n): string {\n const {\n parentLeftPrefix = '',\n isChild = false,\n isLast = true,\n withStyles,\n withNodeIndex\n } = params;\n const prefix = isChild ? ' ' : '';\n const totalPrefixLeft = parentLeftPrefix + prefix;\n const childrenPrint = tnode.children\n .map((c, i) =>\n tnodeSnapshot(c, {\n parentLeftPrefix: parentLeftPrefix + ''.padStart(prefix.length, ' '),\n isChild: true,\n isLast: i === tnode.children.length - 1,\n withStyles,\n withNodeIndex\n })\n )\n .join('');\n return `${totalPrefixLeft}${tnodePropertiesString(tnode, {\n withStyles,\n withNodeIndex\n })}${\n childrenPrint\n ? `>\\n${childrenPrint}\\n${totalPrefixLeft}`\n : ' />'\n }${isLast ? '' : '\\n'}`;\n}\n","// TODO, when React Native supports unicode regexes,\n// we should use `p{Zs}` instead of [ \\t] to comply\n// with the CSS3 Text Module standard. https://www.w3.org/TR/css-text-3/#spaces\nconst COLLAPSIBLE_AROUND_SEGMENT_BREAK_REGEX = /[ \\t]*[\\r\\n\\f]+[ \\t]*/g;\nconst CONSECUTIVE_SEGMENT_BREAKS_REGEX = /[\\r\\n\\f]+/g;\nconst ZERO_WIDTH_SPACES_AROUND_SEGMENT_BREAKS_REGEX =\n /(\\u200b\\n\\u200b?|\\u200b?\\n\\u200b)/g;\nconst SPACE_DISCARDING_CHARSET_REGEX =\n /([\\u2E80-\\u2EFF\\u2F00-\\u2FDF\\u2FF0-\\u2FFF\\u3000-\\u303F\\u3040-\\u309F\\u30A0-\\u30FF\\u3130-\\u318F\\u3190-\\u319F\\u31C0-\\u31EF\\u31F0-\\u31FF\\u3300-\\u33FF\\u3400-\\u4DBF\\u4E00-\\u9FFF\\uA000-\\uA48F\\uA490-\\uA4CF\\uF900-\\uFAFF\\uFE10-\\uFE1F\\uFE30-\\uFE4F\\uFE50-\\uFE6F\\uFF00-\\uFFEF])\\n([\\u2E80-\\u2EFF\\u2F00-\\u2FDF\\u2FF0-\\u2FFF\\u3000-\\u303F\\u3040-\\u309F\\u30A0-\\u30FF\\u3130-\\u318F\\u3190-\\u319F\\u31C0-\\u31EF\\u31F0-\\u31FF\\u3300-\\u33FF\\u3400-\\u4DBF\\u4E00-\\u9FFF\\uA000-\\uA48F\\uA490-\\uA4CF\\uF900-\\uFAFF\\uFE10-\\uFE1F\\uFE30-\\uFE4F\\uFE50-\\uFE6F\\uFF00-\\uFFEF])/g;\nconst SEGMENT_BREAK_REGEX = /\\n/g;\nconst SUBSEQUENT_WHITESPACE_REGEX = /[ \\t]+/g;\n\n// Implementation of\n// https://www.w3.org/TR/2020/WD-css-text-3-20201119/#white-space-phase-1\nexport function removeCollapsibleAroundSegmentBreak(data: string): string {\n return data.replace(COLLAPSIBLE_AROUND_SEGMENT_BREAK_REGEX, '\\n');\n}\n\n// Implementation of\n// https://www.w3.org/TR/2020/WD-css-text-3-20201119/#line-break-transform\nexport function removeConsecutiveSegmentBreaks(data: string): string {\n return data.replace(CONSECUTIVE_SEGMENT_BREAKS_REGEX, '\\n');\n}\n\n// Implementation of\n// https://www.w3.org/TR/2020/WD-css-text-3-20200429/#line-break-transform\n// In the latest version (https://www.w3.org/TR/2020/WD-css-text-3-20201119/),\n// the behavior is considered at UA discretion.\nexport function normalizeZeroWidthWhitespaces(data: string): string {\n return data.replace(ZERO_WIDTH_SPACES_AROUND_SEGMENT_BREAKS_REGEX, '\\u200b');\n}\n\n// Partial implementation of\n// https://www.w3.org/TR/2020/WD-css-text-3-20200429/#line-break-transform\n//\n// Because RN Javascript runtime doesn't support String.fromCharCode, we don't support space discarding\n// for character ranges above U+FFFF\n//\n// In the latest version (https://www.w3.org/TR/2020/WD-css-text-3-20201119/),\n// the behavior is considered at UA discretion.\nexport function removeLineBreaksAroundEastAsianDiscardSet(\n data: string\n): string {\n return data.replace(SPACE_DISCARDING_CHARSET_REGEX, '$1$2');\n}\n\n// Implementation of\n// https://www.w3.org/TR/2020/WD-css-text-3-20201119/#white-space-phase-2\n// (A.1)\nexport function replaceSegmentBreaks(data: string): string {\n return data.replace(SEGMENT_BREAK_REGEX, ' ');\n}\n\n// Implementation of\n// https://www.w3.org/TR/2020/WD-css-text-3-20201119/#white-space-phase-2\n// (A.4)\nexport function normalizeWhitespaces(data: string): string {\n return data.replace(SUBSEQUENT_WHITESPACE_REGEX, ' ');\n}\n","import { TNodeImpl, TNodeInit } from '../tree/tree-types';\nimport { Document } from 'domhandler';\nimport { TTextCtor } from '../tree/TTextCtor';\nimport { TPhrasingCtor } from '../tree/TPhrasingCtor';\nimport { TBlockCtor } from '../tree/TBlockCtor';\nimport { TDocumentCtor, TDocumentImpl } from '../tree/TDocumentImpl';\nimport { isDomElement, isDomText, Element, Node, Text } from '../dom/dom-utils';\nimport { TStyles } from '../styles/TStyles';\n\nimport { TEmptyCtor } from '../tree/TEmptyCtor';\nimport { DataFlowParams } from './types';\n\nexport function mapNodeList({\n nodeList,\n parent,\n parentStyles,\n params\n}: {\n nodeList: Node[];\n parentStyles?: TStyles;\n parent: TNodeImpl | null;\n params: DataFlowParams;\n}): TNodeImpl[] {\n const nextMap: TNodeImpl[] = [];\n for (const i in nodeList) {\n const child = nodeList[i];\n const translated = translateNode({\n node: child,\n parentStyles,\n params,\n nodeIndex: Number(i),\n parent\n });\n if (translated) {\n nextMap.push(translated);\n }\n }\n return nextMap;\n}\n\nexport function bindChildren(\n node: TNodeImpl,\n children: Node[],\n params: DataFlowParams\n) {\n if (!node.elementModel || !node.elementModel.isOpaque) {\n node.bindChildren(\n mapNodeList({\n nodeList: children,\n parent: node,\n params\n })\n );\n }\n}\n\nfunction translateElement({\n node,\n nodeIndex,\n params,\n parent,\n parentStyles\n}: TranslateParams): TNodeImpl | null {\n const tagName = node.tagName;\n const sharedProps: Omit = {\n nodeIndex,\n parentStyles,\n context: params,\n domNode: node,\n parent\n };\n const elementModel = params.modelRegistry.getElementModelFromTagName(tagName);\n if (!elementModel) {\n return new TEmptyCtor({\n ...sharedProps,\n isUnregistered: true,\n elementModel,\n domNode: node\n });\n }\n if (elementModel.isTranslatableTextual()) {\n if (node.children.length === 1) {\n const child = node.children[0] as Node;\n if (isDomText(child)) {\n return new TTextCtor({\n ...sharedProps,\n elementModel,\n textNode: child,\n domNode: node\n });\n }\n } else if (node.children.length === 0) {\n return new TTextCtor({\n ...sharedProps,\n elementModel,\n domNode: node,\n textNode: new Text('')\n });\n }\n const phrasing = new TPhrasingCtor({\n ...sharedProps,\n domNode: node,\n elementModel\n });\n bindChildren(phrasing, node.children, params);\n return phrasing;\n }\n if (elementModel.isTranslatableBlock()) {\n const block = new TBlockCtor({\n ...sharedProps,\n elementModel,\n parentStyles,\n domNode: node\n });\n bindChildren(block, node.children, params);\n return block;\n }\n return new TEmptyCtor({\n ...sharedProps,\n isUnregistered: false,\n elementModel,\n domNode: node\n });\n}\n\ninterface TranslateParams {\n node: T;\n params: DataFlowParams;\n parent: TNodeImpl | null;\n parentStyles?: TStyles;\n nodeIndex?: number;\n}\n\nexport function translateNode({\n node,\n parentStyles,\n params,\n nodeIndex,\n parent\n}: TranslateParams): TNodeImpl | null {\n if (isDomText(node)) {\n return new TTextCtor({\n textNode: node,\n context: params,\n parentStyles,\n domNode: null,\n elementModel: null,\n nodeIndex,\n parent\n });\n }\n if (isDomElement(node)) {\n return translateElement({\n node,\n parentStyles,\n params,\n nodeIndex,\n parent\n });\n }\n return null;\n}\n\nexport function translateDocument(\n document: Document,\n params: DataFlowParams\n): TDocumentImpl {\n const tdoc = new TDocumentCtor({\n context: params,\n styles: params.baseStyles,\n domNode: document as any\n });\n bindChildren(tdoc, document.children, params);\n tdoc.parseChildren();\n return tdoc;\n}\n","import { GenericTNodeCtor, Mutable } from './TNodeCtor';\nimport HTMLElementModel from '../model/HTMLElementModel';\nimport { isDomElement, isDomText } from '../dom/dom-utils';\nimport { TEmptyImpl } from './TEmptyCtor';\nimport { TNodeInit, TNodeImpl, DocumentContext } from './tree-types';\nimport TBlockImpl from './TBlockCtor';\n\nexport type TDocumentInit = Omit;\n\nexport interface TDocumentImpl extends TNodeImpl {\n readonly context: Readonly;\n /**\n * Iterate over children and extract meta-information into context field.\n * Replace children with a single-element array containing the body.\n */\n parseChildren(): void;\n}\n\nconst defaultContextBase: DocumentContext = Object.freeze({\n baseHref: 'about:blank',\n baseTarget: '_self',\n charset: 'utf-8',\n title: '',\n lang: 'en',\n dir: 'ltr',\n links: [],\n meta: []\n});\n\nfunction getDefaultDocumentContext(): DocumentContext {\n return Object.assign({}, defaultContextBase, { links: [], meta: [] });\n}\n\nfunction extractContextFromHead(head: TEmptyImpl, lang?: string, dir?: string) {\n const context = getDefaultDocumentContext();\n if (lang) {\n context.lang = lang;\n }\n if (dir) {\n context.dir = 'rtl';\n }\n const domNode = head.domNode;\n const children = domNode.children;\n children.filter(isDomElement).forEach((child) => {\n if (child.tagName === 'meta') {\n if (child.attribs.name) {\n context.meta.push(child.attribs as any);\n } else if (child.attribs.charset) {\n context.charset = child.attribs.charset.toLowerCase();\n }\n } else if (child.tagName === 'link') {\n context.links.push(child.attribs);\n } else if (child.tagName === 'title') {\n for (const titleChild of child.children.filter(isDomText)) {\n context.title = titleChild.data.trim();\n break;\n }\n } else if (child.tagName === 'base') {\n context.baseHref = child.attribs.href || context.baseHref;\n context.baseTarget = (child.attribs.target as any) || context.baseTarget;\n }\n });\n return context;\n}\n\nconst htmlModel = HTMLElementModel.fromNativeModel({\n tagName: 'html' as any,\n category: 'grouping'\n});\n\nconst TDocumentCtor = function TDocument(\n this: Mutable,\n init: TDocumentInit\n) {\n this.initialize(init as TNodeInit);\n} as Function as GenericTNodeCtor;\n\nTDocumentCtor.prototype = Object.create(TBlockImpl.prototype);\n\nObject.defineProperty(TDocumentCtor.prototype, 'tagName', {\n value: 'html',\n writable: false\n});\n\nObject.defineProperty(TDocumentCtor.prototype, 'type', {\n value: 'document',\n writable: false\n});\n\nObject.defineProperty(TDocumentCtor.prototype, 'displayName', {\n value: 'TDocument',\n writable: false\n});\n\nObject.defineProperty(TDocumentCtor.prototype, 'elementModel', {\n value: htmlModel,\n writable: false\n});\n\nTDocumentCtor.prototype.parseChildren = function parseChildren(\n this: Mutable\n) {\n let head: TEmptyImpl | undefined;\n for (const child of this.children) {\n if (child.tagName === 'head') {\n head = child as unknown as TEmptyImpl;\n break;\n }\n }\n this.context = Object.freeze(\n head\n ? extractContextFromHead(\n head,\n this.attributes!.lang,\n this.attributes!.dir\n )\n : {\n ...getDefaultDocumentContext(),\n lang: this.attributes!.lang,\n dir: this.attributes!.dir as any\n }\n );\n};\n\nexport { TDocumentCtor };\n\nexport default TDocumentCtor;\n","import HTMLContentModel from '../model/HTMLContentModel';\nimport { Element } from '../dom/dom-utils';\nimport { TNodeImpl, TNodeInit } from './tree-types';\nimport TNodeCtor, { GenericTNodeCtor, Mutable } from './TNodeCtor';\n\nexport interface TEmptyImpl extends TNodeImpl {\n readonly domNode: Element;\n}\n\nexport interface TEmptyInit extends TNodeInit {\n domNode: Element;\n}\n\nconst TEmptyCtor = function TEmpty(\n this: Mutable,\n init: TEmptyInit\n) {\n this.initialize(init);\n} as Function as GenericTNodeCtor;\n\n//@ts-ignore\nTEmptyCtor.prototype = new TNodeCtor('empty', 'TEmpty');\n\nTEmptyCtor.prototype.matchContentModel = function matchContentModel(\n contentModel: HTMLContentModel\n) {\n return contentModel === HTMLContentModel.none;\n};\n\nexport default TEmptyCtor;\n\nexport { TEmptyCtor };\n","import { Document } from 'domhandler';\nimport { Parser, ParserOptions } from 'htmlparser2';\nimport DomHandler, { DomHandlerOptions } from './DomHandler';\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n */\nexport default function parseDocument(\n data: string,\n options: ParserOptions & DomHandlerOptions = {}\n): Document {\n const handler = new DomHandler(options);\n new Parser(handler, options).end(data);\n return handler.root;\n}\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RssHandler = exports.DefaultHandler = exports.DomUtils = exports.ElementType = exports.Tokenizer = exports.createDomStream = exports.parseDOM = exports.parseDocument = exports.DomHandler = exports.Parser = void 0;\nvar Parser_1 = require(\"./Parser\");\nObject.defineProperty(exports, \"Parser\", { enumerable: true, get: function () { return Parser_1.Parser; } });\nvar domhandler_1 = require(\"domhandler\");\nObject.defineProperty(exports, \"DomHandler\", { enumerable: true, get: function () { return domhandler_1.DomHandler; } });\nObject.defineProperty(exports, \"DefaultHandler\", { enumerable: true, get: function () { return domhandler_1.DomHandler; } });\n// Helper methods\n/**\n * Parses the data, returns the resulting document.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n */\nfunction parseDocument(data, options) {\n var handler = new domhandler_1.DomHandler(undefined, options);\n new Parser_1.Parser(handler, options).end(data);\n return handler.root;\n}\nexports.parseDocument = parseDocument;\n/**\n * Parses data, returns an array of the root nodes.\n *\n * Note that the root nodes still have a `Document` node as their parent.\n * Use `parseDocument` to get the `Document` node instead.\n *\n * @param data The data that should be parsed.\n * @param options Optional options for the parser and DOM builder.\n * @deprecated Use `parseDocument` instead.\n */\nfunction parseDOM(data, options) {\n return parseDocument(data, options).children;\n}\nexports.parseDOM = parseDOM;\n/**\n * Creates a parser instance, with an attached DOM handler.\n *\n * @param cb A callback that will be called once parsing has been completed.\n * @param options Optional options for the parser and DOM builder.\n * @param elementCb An optional callback that will be called every time a tag has been completed inside of the DOM.\n */\nfunction createDomStream(cb, options, elementCb) {\n var handler = new domhandler_1.DomHandler(cb, options, elementCb);\n return new Parser_1.Parser(handler, options);\n}\nexports.createDomStream = createDomStream;\nvar Tokenizer_1 = require(\"./Tokenizer\");\nObject.defineProperty(exports, \"Tokenizer\", { enumerable: true, get: function () { return __importDefault(Tokenizer_1).default; } });\nvar ElementType = __importStar(require(\"domelementtype\"));\nexports.ElementType = ElementType;\n/*\n * All of the following exports exist for backwards-compatibility.\n * They should probably be removed eventually.\n */\n__exportStar(require(\"./FeedHandler\"), exports);\nexports.DomUtils = __importStar(require(\"domutils\"));\nvar FeedHandler_1 = require(\"./FeedHandler\");\nObject.defineProperty(exports, \"RssHandler\", { enumerable: true, get: function () { return FeedHandler_1.FeedHandler; } });\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXML = exports.decodeHTMLStrict = exports.decodeHTML = exports.determineBranch = exports.JUMP_OFFSET_BASE = exports.BinTrieFlags = exports.xmlDecodeTree = exports.htmlDecodeTree = void 0;\nvar decode_data_html_1 = __importDefault(require(\"./generated/decode-data-html\"));\nexports.htmlDecodeTree = decode_data_html_1.default;\nvar decode_data_xml_1 = __importDefault(require(\"./generated/decode-data-xml\"));\nexports.xmlDecodeTree = decode_data_xml_1.default;\nvar decode_codepoint_1 = __importDefault(require(\"./decode_codepoint\"));\nvar BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"HAS_VALUE\"] = 32768] = \"HAS_VALUE\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 32512] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"MULTI_BYTE\"] = 128] = \"MULTI_BYTE\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags = exports.BinTrieFlags || (exports.BinTrieFlags = {}));\nexports.JUMP_OFFSET_BASE = 48 /* ZERO */ - 1;\nfunction getDecoder(decodeTree) {\n return function decodeHTMLBinary(str, strict) {\n var ret = \"\";\n var lastIdx = 0;\n var strIdx = 0;\n while ((strIdx = str.indexOf(\"&\", strIdx)) >= 0) {\n ret += str.slice(lastIdx, strIdx);\n lastIdx = strIdx;\n // Skip the \"&\"\n strIdx += 1;\n // If we have a numeric entity, handle this separately.\n if (str.charCodeAt(strIdx) === 35 /* NUM */) {\n // Skip the leading \"&#\". For hex entities, also skip the leading \"x\".\n var start = strIdx + 1;\n var base = 10;\n var cp = str.charCodeAt(start);\n if ((cp | 32 /* To_LOWER_BIT */) === 120 /* LOWER_X */) {\n base = 16;\n strIdx += 1;\n start += 1;\n }\n while (((cp = str.charCodeAt(++strIdx)) >= 48 /* ZERO */ &&\n cp <= 57 /* NINE */) ||\n (base === 16 &&\n (cp | 32 /* To_LOWER_BIT */) >= 97 /* LOWER_A */ &&\n (cp | 32 /* To_LOWER_BIT */) <= 102 /* LOWER_F */))\n ;\n if (start !== strIdx) {\n var entity = str.substring(start, strIdx);\n var parsed = parseInt(entity, base);\n if (str.charCodeAt(strIdx) === 59 /* SEMI */) {\n strIdx += 1;\n }\n else if (strict) {\n continue;\n }\n ret += decode_codepoint_1.default(parsed);\n lastIdx = strIdx;\n }\n continue;\n }\n var result = null;\n var excess = 1;\n var treeIdx = 0;\n var current = decodeTree[treeIdx];\n for (; strIdx < str.length; strIdx++, excess++) {\n treeIdx = determineBranch(decodeTree, current, treeIdx + 1, str.charCodeAt(strIdx));\n if (treeIdx < 0)\n break;\n current = decodeTree[treeIdx];\n // If the branch is a value, store it and continue\n if (current & BinTrieFlags.HAS_VALUE) {\n // If we have a legacy entity while parsing strictly, just skip the number of bytes\n if (strict && str.charCodeAt(strIdx) !== 59 /* SEMI */) {\n // No need to consider multi-byte values, as the legacy entity is always a single byte\n treeIdx += 1;\n }\n else {\n // If this is a surrogate pair, combine the higher bits from the node with the next byte\n result =\n current & BinTrieFlags.MULTI_BYTE\n ? String.fromCharCode(decodeTree[++treeIdx], decodeTree[++treeIdx])\n : String.fromCharCode(decodeTree[++treeIdx]);\n excess = 0;\n }\n }\n }\n if (result != null) {\n ret += result;\n lastIdx = strIdx - excess + 1;\n }\n }\n return ret + str.slice(lastIdx);\n };\n}\nfunction determineBranch(decodeTree, current, nodeIdx, char) {\n if (current <= 128) {\n return char === current ? nodeIdx : -1;\n }\n var branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 8;\n if (branchCount === 0) {\n return -1;\n }\n if (branchCount === 1) {\n return char === decodeTree[nodeIdx] ? nodeIdx + 1 : -1;\n }\n var jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n if (jumpOffset) {\n var value = char - exports.JUMP_OFFSET_BASE - jumpOffset;\n return value < 0 || value > branchCount\n ? -1\n : decodeTree[nodeIdx + value] - 1;\n }\n // Binary search for the character.\n var lo = nodeIdx;\n var hi = lo + branchCount - 1;\n while (lo <= hi) {\n var mid = (lo + hi) >>> 1;\n var midVal = decodeTree[mid];\n if (midVal < char) {\n lo = mid + 1;\n }\n else if (midVal > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nexports.determineBranch = determineBranch;\nvar htmlDecoder = getDecoder(decode_data_html_1.default);\nvar xmlDecoder = getDecoder(decode_data_xml_1.default);\nfunction decodeHTML(str) {\n return htmlDecoder(str, false);\n}\nexports.decodeHTML = decodeHTML;\nfunction decodeHTMLStrict(str) {\n return htmlDecoder(str, true);\n}\nexports.decodeHTMLStrict = decodeHTMLStrict;\nfunction decodeXML(str) {\n return xmlDecoder(str, true);\n}\nexports.decodeXML = decodeXML;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// Generated using scripts/write-decode-map.ts\n// prettier-ignore\nexports.default = new Uint16Array([14866, 60, 237, 340, 721, 1312, 1562, 1654, 1838, 1957, 2183, 2239, 2301, 2958, 3037, 3893, 4123, 4298, 4330, 4801, 5191, 5395, 5752, 5903, 5943, 5972, 6050, 0, 0, 0, 0, 0, 0, 6135, 6565, 7422, 8183, 8738, 9242, 9503, 9938, 10189, 10573, 10637, 10715, 11950, 12246, 13539, 13950, 14445, 14533, 15364, 16514, 16980, 17390, 17763, 17849, 18036, 18125, 4096, 69, 77, 97, 98, 99, 102, 103, 108, 109, 110, 111, 112, 114, 115, 116, 117, 92, 100, 106, 115, 122, 137, 142, 151, 157, 163, 167, 182, 196, 204, 220, 229, 108, 105, 103, 33024, 198, 59, 32768, 198, 80, 33024, 38, 59, 32768, 38, 99, 117, 116, 101, 33024, 193, 59, 32768, 193, 114, 101, 118, 101, 59, 32768, 258, 512, 105, 121, 127, 134, 114, 99, 33024, 194, 59, 32768, 194, 59, 32768, 1040, 114, 59, 32896, 55349, 56580, 114, 97, 118, 101, 33024, 192, 59, 32768, 192, 112, 104, 97, 59, 32768, 913, 97, 99, 114, 59, 32768, 256, 100, 59, 32768, 10835, 512, 103, 112, 172, 177, 111, 110, 59, 32768, 260, 102, 59, 32896, 55349, 56632, 112, 108, 121, 70, 117, 110, 99, 116, 105, 111, 110, 59, 32768, 8289, 105, 110, 103, 33024, 197, 59, 32768, 197, 512, 99, 115, 209, 214, 114, 59, 32896, 55349, 56476, 105, 103, 110, 59, 32768, 8788, 105, 108, 100, 101, 33024, 195, 59, 32768, 195, 109, 108, 33024, 196, 59, 32768, 196, 2048, 97, 99, 101, 102, 111, 114, 115, 117, 253, 278, 282, 310, 315, 321, 327, 332, 512, 99, 114, 258, 267, 107, 115, 108, 97, 115, 104, 59, 32768, 8726, 583, 271, 274, 59, 32768, 10983, 101, 100, 59, 32768, 8966, 121, 59, 32768, 1041, 768, 99, 114, 116, 289, 296, 306, 97, 117, 115, 101, 59, 32768, 8757, 110, 111, 117, 108, 108, 105, 115, 59, 32768, 8492, 97, 59, 32768, 914, 114, 59, 32896, 55349, 56581, 112, 102, 59, 32896, 55349, 56633, 101, 118, 101, 59, 32768, 728, 99, 114, 59, 32768, 8492, 109, 112, 101, 113, 59, 32768, 8782, 3584, 72, 79, 97, 99, 100, 101, 102, 104, 105, 108, 111, 114, 115, 117, 368, 373, 380, 426, 461, 466, 487, 491, 495, 533, 593, 695, 701, 707, 99, 121, 59, 32768, 1063, 80, 89, 33024, 169, 59, 32768, 169, 768, 99, 112, 121, 387, 393, 419, 117, 116, 101, 59, 32768, 262, 512, 59, 105, 398, 400, 32768, 8914, 116, 97, 108, 68, 105, 102, 102, 101, 114, 101, 110, 116, 105, 97, 108, 68, 59, 32768, 8517, 108, 101, 121, 115, 59, 32768, 8493, 1024, 97, 101, 105, 111, 435, 441, 449, 454, 114, 111, 110, 59, 32768, 268, 100, 105, 108, 33024, 199, 59, 32768, 199, 114, 99, 59, 32768, 264, 110, 105, 110, 116, 59, 32768, 8752, 111, 116, 59, 32768, 266, 512, 100, 110, 471, 478, 105, 108, 108, 97, 59, 32768, 184, 116, 101, 114, 68, 111, 116, 59, 32768, 183, 114, 59, 32768, 8493, 105, 59, 32768, 935, 114, 99, 108, 101, 1024, 68, 77, 80, 84, 508, 513, 520, 526, 111, 116, 59, 32768, 8857, 105, 110, 117, 115, 59, 32768, 8854, 108, 117, 115, 59, 32768, 8853, 105, 109, 101, 115, 59, 32768, 8855, 111, 512, 99, 115, 539, 562, 107, 119, 105, 115, 101, 67, 111, 110, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 59, 32768, 8754, 101, 67, 117, 114, 108, 121, 512, 68, 81, 573, 586, 111, 117, 98, 108, 101, 81, 117, 111, 116, 101, 59, 32768, 8221, 117, 111, 116, 101, 59, 32768, 8217, 1024, 108, 110, 112, 117, 602, 614, 648, 664, 111, 110, 512, 59, 101, 609, 611, 32768, 8759, 59, 32768, 10868, 768, 103, 105, 116, 621, 629, 634, 114, 117, 101, 110, 116, 59, 32768, 8801, 110, 116, 59, 32768, 8751, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 59, 32768, 8750, 512, 102, 114, 653, 656, 59, 32768, 8450, 111, 100, 117, 99, 116, 59, 32768, 8720, 110, 116, 101, 114, 67, 108, 111, 99, 107, 119, 105, 115, 101, 67, 111, 110, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 59, 32768, 8755, 111, 115, 115, 59, 32768, 10799, 99, 114, 59, 32896, 55349, 56478, 112, 512, 59, 67, 713, 715, 32768, 8915, 97, 112, 59, 32768, 8781, 2816, 68, 74, 83, 90, 97, 99, 101, 102, 105, 111, 115, 743, 758, 763, 768, 773, 795, 809, 821, 826, 910, 1295, 512, 59, 111, 748, 750, 32768, 8517, 116, 114, 97, 104, 100, 59, 32768, 10513, 99, 121, 59, 32768, 1026, 99, 121, 59, 32768, 1029, 99, 121, 59, 32768, 1039, 768, 103, 114, 115, 780, 786, 790, 103, 101, 114, 59, 32768, 8225, 114, 59, 32768, 8609, 104, 118, 59, 32768, 10980, 512, 97, 121, 800, 806, 114, 111, 110, 59, 32768, 270, 59, 32768, 1044, 108, 512, 59, 116, 815, 817, 32768, 8711, 97, 59, 32768, 916, 114, 59, 32896, 55349, 56583, 512, 97, 102, 831, 897, 512, 99, 109, 836, 891, 114, 105, 116, 105, 99, 97, 108, 1024, 65, 68, 71, 84, 852, 859, 877, 884, 99, 117, 116, 101, 59, 32768, 180, 111, 581, 864, 867, 59, 32768, 729, 98, 108, 101, 65, 99, 117, 116, 101, 59, 32768, 733, 114, 97, 118, 101, 59, 32768, 96, 105, 108, 100, 101, 59, 32768, 732, 111, 110, 100, 59, 32768, 8900, 102, 101, 114, 101, 110, 116, 105, 97, 108, 68, 59, 32768, 8518, 2113, 920, 0, 0, 0, 925, 946, 0, 1139, 102, 59, 32896, 55349, 56635, 768, 59, 68, 69, 931, 933, 938, 32768, 168, 111, 116, 59, 32768, 8412, 113, 117, 97, 108, 59, 32768, 8784, 98, 108, 101, 1536, 67, 68, 76, 82, 85, 86, 961, 978, 996, 1080, 1101, 1125, 111, 110, 116, 111, 117, 114, 73, 110, 116, 101, 103, 114, 97, 108, 59, 32768, 8751, 111, 1093, 985, 0, 0, 988, 59, 32768, 168, 110, 65, 114, 114, 111, 119, 59, 32768, 8659, 512, 101, 111, 1001, 1034, 102, 116, 768, 65, 82, 84, 1010, 1017, 1029, 114, 114, 111, 119, 59, 32768, 8656, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 32768, 8660, 101, 101, 59, 32768, 10980, 110, 103, 512, 76, 82, 1041, 1068, 101, 102, 116, 512, 65, 82, 1049, 1056, 114, 114, 111, 119, 59, 32768, 10232, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 32768, 10234, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 32768, 10233, 105, 103, 104, 116, 512, 65, 84, 1089, 1096, 114, 114, 111, 119, 59, 32768, 8658, 101, 101, 59, 32768, 8872, 112, 1042, 1108, 0, 0, 1115, 114, 114, 111, 119, 59, 32768, 8657, 111, 119, 110, 65, 114, 114, 111, 119, 59, 32768, 8661, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 59, 32768, 8741, 110, 1536, 65, 66, 76, 82, 84, 97, 1152, 1179, 1186, 1236, 1272, 1288, 114, 114, 111, 119, 768, 59, 66, 85, 1163, 1165, 1170, 32768, 8595, 97, 114, 59, 32768, 10515, 112, 65, 114, 114, 111, 119, 59, 32768, 8693, 114, 101, 118, 101, 59, 32768, 785, 101, 102, 116, 1315, 1196, 0, 1209, 0, 1220, 105, 103, 104, 116, 86, 101, 99, 116, 111, 114, 59, 32768, 10576, 101, 101, 86, 101, 99, 116, 111, 114, 59, 32768, 10590, 101, 99, 116, 111, 114, 512, 59, 66, 1229, 1231, 32768, 8637, 97, 114, 59, 32768, 10582, 105, 103, 104, 116, 805, 1245, 0, 1256, 101, 101, 86, 101, 99, 116, 111, 114, 59, 32768, 10591, 101, 99, 116, 111, 114, 512, 59, 66, 1265, 1267, 32768, 8641, 97, 114, 59, 32768, 10583, 101, 101, 512, 59, 65, 1279, 1281, 32768, 8868, 114, 114, 111, 119, 59, 32768, 8615, 114, 114, 111, 119, 59, 32768, 8659, 512, 99, 116, 1300, 1305, 114, 59, 32896, 55349, 56479, 114, 111, 107, 59, 32768, 272, 4096, 78, 84, 97, 99, 100, 102, 103, 108, 109, 111, 112, 113, 115, 116, 117, 120, 1344, 1348, 1354, 1363, 1386, 1391, 1396, 1405, 1413, 1460, 1475, 1483, 1514, 1527, 1531, 1538, 71, 59, 32768, 330, 72, 33024, 208, 59, 32768, 208, 99, 117, 116, 101, 33024, 201, 59, 32768, 201, 768, 97, 105, 121, 1370, 1376, 1383, 114, 111, 110, 59, 32768, 282, 114, 99, 33024, 202, 59, 32768, 202, 59, 32768, 1069, 111, 116, 59, 32768, 278, 114, 59, 32896, 55349, 56584, 114, 97, 118, 101, 33024, 200, 59, 32768, 200, 101, 109, 101, 110, 116, 59, 32768, 8712, 512, 97, 112, 1418, 1423, 99, 114, 59, 32768, 274, 116, 121, 1060, 1431, 0, 0, 1444, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 32768, 9723, 101, 114, 121, 83, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 32768, 9643, 512, 103, 112, 1465, 1470, 111, 110, 59, 32768, 280, 102, 59, 32896, 55349, 56636, 115, 105, 108, 111, 110, 59, 32768, 917, 117, 512, 97, 105, 1489, 1504, 108, 512, 59, 84, 1495, 1497, 32768, 10869, 105, 108, 100, 101, 59, 32768, 8770, 108, 105, 98, 114, 105, 117, 109, 59, 32768, 8652, 512, 99, 105, 1519, 1523, 114, 59, 32768, 8496, 109, 59, 32768, 10867, 97, 59, 32768, 919, 109, 108, 33024, 203, 59, 32768, 203, 512, 105, 112, 1543, 1549, 115, 116, 115, 59, 32768, 8707, 111, 110, 101, 110, 116, 105, 97, 108, 69, 59, 32768, 8519, 1280, 99, 102, 105, 111, 115, 1572, 1576, 1581, 1620, 1648, 121, 59, 32768, 1060, 114, 59, 32896, 55349, 56585, 108, 108, 101, 100, 1060, 1591, 0, 0, 1604, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 32768, 9724, 101, 114, 121, 83, 109, 97, 108, 108, 83, 113, 117, 97, 114, 101, 59, 32768, 9642, 1601, 1628, 0, 1633, 0, 0, 1639, 102, 59, 32896, 55349, 56637, 65, 108, 108, 59, 32768, 8704, 114, 105, 101, 114, 116, 114, 102, 59, 32768, 8497, 99, 114, 59, 32768, 8497, 3072, 74, 84, 97, 98, 99, 100, 102, 103, 111, 114, 115, 116, 1678, 1683, 1688, 1701, 1708, 1729, 1734, 1739, 1742, 1748, 1828, 1834, 99, 121, 59, 32768, 1027, 33024, 62, 59, 32768, 62, 109, 109, 97, 512, 59, 100, 1696, 1698, 32768, 915, 59, 32768, 988, 114, 101, 118, 101, 59, 32768, 286, 768, 101, 105, 121, 1715, 1721, 1726, 100, 105, 108, 59, 32768, 290, 114, 99, 59, 32768, 284, 59, 32768, 1043, 111, 116, 59, 32768, 288, 114, 59, 32896, 55349, 56586, 59, 32768, 8921, 112, 102, 59, 32896, 55349, 56638, 101, 97, 116, 101, 114, 1536, 69, 70, 71, 76, 83, 84, 1766, 1783, 1794, 1803, 1809, 1821, 113, 117, 97, 108, 512, 59, 76, 1775, 1777, 32768, 8805, 101, 115, 115, 59, 32768, 8923, 117, 108, 108, 69, 113, 117, 97, 108, 59, 32768, 8807, 114, 101, 97, 116, 101, 114, 59, 32768, 10914, 101, 115, 115, 59, 32768, 8823, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 32768, 10878, 105, 108, 100, 101, 59, 32768, 8819, 99, 114, 59, 32896, 55349, 56482, 59, 32768, 8811, 2048, 65, 97, 99, 102, 105, 111, 115, 117, 1854, 1861, 1874, 1880, 1884, 1897, 1919, 1934, 82, 68, 99, 121, 59, 32768, 1066, 512, 99, 116, 1866, 1871, 101, 107, 59, 32768, 711, 59, 32768, 94, 105, 114, 99, 59, 32768, 292, 114, 59, 32768, 8460, 108, 98, 101, 114, 116, 83, 112, 97, 99, 101, 59, 32768, 8459, 833, 1902, 0, 1906, 102, 59, 32768, 8461, 105, 122, 111, 110, 116, 97, 108, 76, 105, 110, 101, 59, 32768, 9472, 512, 99, 116, 1924, 1928, 114, 59, 32768, 8459, 114, 111, 107, 59, 32768, 294, 109, 112, 533, 1940, 1950, 111, 119, 110, 72, 117, 109, 112, 59, 32768, 8782, 113, 117, 97, 108, 59, 32768, 8783, 3584, 69, 74, 79, 97, 99, 100, 102, 103, 109, 110, 111, 115, 116, 117, 1985, 1990, 1996, 2001, 2010, 2025, 2030, 2034, 2043, 2077, 2134, 2155, 2160, 2167, 99, 121, 59, 32768, 1045, 108, 105, 103, 59, 32768, 306, 99, 121, 59, 32768, 1025, 99, 117, 116, 101, 33024, 205, 59, 32768, 205, 512, 105, 121, 2015, 2022, 114, 99, 33024, 206, 59, 32768, 206, 59, 32768, 1048, 111, 116, 59, 32768, 304, 114, 59, 32768, 8465, 114, 97, 118, 101, 33024, 204, 59, 32768, 204, 768, 59, 97, 112, 2050, 2052, 2070, 32768, 8465, 512, 99, 103, 2057, 2061, 114, 59, 32768, 298, 105, 110, 97, 114, 121, 73, 59, 32768, 8520, 108, 105, 101, 115, 59, 32768, 8658, 837, 2082, 0, 2110, 512, 59, 101, 2086, 2088, 32768, 8748, 512, 103, 114, 2093, 2099, 114, 97, 108, 59, 32768, 8747, 115, 101, 99, 116, 105, 111, 110, 59, 32768, 8898, 105, 115, 105, 98, 108, 101, 512, 67, 84, 2120, 2127, 111, 109, 109, 97, 59, 32768, 8291, 105, 109, 101, 115, 59, 32768, 8290, 768, 103, 112, 116, 2141, 2146, 2151, 111, 110, 59, 32768, 302, 102, 59, 32896, 55349, 56640, 97, 59, 32768, 921, 99, 114, 59, 32768, 8464, 105, 108, 100, 101, 59, 32768, 296, 828, 2172, 0, 2177, 99, 121, 59, 32768, 1030, 108, 33024, 207, 59, 32768, 207, 1280, 99, 102, 111, 115, 117, 2193, 2206, 2211, 2217, 2232, 512, 105, 121, 2198, 2203, 114, 99, 59, 32768, 308, 59, 32768, 1049, 114, 59, 32896, 55349, 56589, 112, 102, 59, 32896, 55349, 56641, 820, 2222, 0, 2227, 114, 59, 32896, 55349, 56485, 114, 99, 121, 59, 32768, 1032, 107, 99, 121, 59, 32768, 1028, 1792, 72, 74, 97, 99, 102, 111, 115, 2253, 2258, 2263, 2269, 2283, 2288, 2294, 99, 121, 59, 32768, 1061, 99, 121, 59, 32768, 1036, 112, 112, 97, 59, 32768, 922, 512, 101, 121, 2274, 2280, 100, 105, 108, 59, 32768, 310, 59, 32768, 1050, 114, 59, 32896, 55349, 56590, 112, 102, 59, 32896, 55349, 56642, 99, 114, 59, 32896, 55349, 56486, 2816, 74, 84, 97, 99, 101, 102, 108, 109, 111, 115, 116, 2323, 2328, 2333, 2374, 2396, 2775, 2780, 2797, 2804, 2934, 2954, 99, 121, 59, 32768, 1033, 33024, 60, 59, 32768, 60, 1280, 99, 109, 110, 112, 114, 2344, 2350, 2356, 2360, 2370, 117, 116, 101, 59, 32768, 313, 98, 100, 97, 59, 32768, 923, 103, 59, 32768, 10218, 108, 97, 99, 101, 116, 114, 102, 59, 32768, 8466, 114, 59, 32768, 8606, 768, 97, 101, 121, 2381, 2387, 2393, 114, 111, 110, 59, 32768, 317, 100, 105, 108, 59, 32768, 315, 59, 32768, 1051, 512, 102, 115, 2401, 2702, 116, 2560, 65, 67, 68, 70, 82, 84, 85, 86, 97, 114, 2423, 2470, 2479, 2530, 2537, 2561, 2618, 2666, 2683, 2690, 512, 110, 114, 2428, 2441, 103, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 32768, 10216, 114, 111, 119, 768, 59, 66, 82, 2451, 2453, 2458, 32768, 8592, 97, 114, 59, 32768, 8676, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 32768, 8646, 101, 105, 108, 105, 110, 103, 59, 32768, 8968, 111, 838, 2485, 0, 2498, 98, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 32768, 10214, 110, 805, 2503, 0, 2514, 101, 101, 86, 101, 99, 116, 111, 114, 59, 32768, 10593, 101, 99, 116, 111, 114, 512, 59, 66, 2523, 2525, 32768, 8643, 97, 114, 59, 32768, 10585, 108, 111, 111, 114, 59, 32768, 8970, 105, 103, 104, 116, 512, 65, 86, 2546, 2553, 114, 114, 111, 119, 59, 32768, 8596, 101, 99, 116, 111, 114, 59, 32768, 10574, 512, 101, 114, 2566, 2591, 101, 768, 59, 65, 86, 2574, 2576, 2583, 32768, 8867, 114, 114, 111, 119, 59, 32768, 8612, 101, 99, 116, 111, 114, 59, 32768, 10586, 105, 97, 110, 103, 108, 101, 768, 59, 66, 69, 2604, 2606, 2611, 32768, 8882, 97, 114, 59, 32768, 10703, 113, 117, 97, 108, 59, 32768, 8884, 112, 768, 68, 84, 86, 2626, 2638, 2649, 111, 119, 110, 86, 101, 99, 116, 111, 114, 59, 32768, 10577, 101, 101, 86, 101, 99, 116, 111, 114, 59, 32768, 10592, 101, 99, 116, 111, 114, 512, 59, 66, 2659, 2661, 32768, 8639, 97, 114, 59, 32768, 10584, 101, 99, 116, 111, 114, 512, 59, 66, 2676, 2678, 32768, 8636, 97, 114, 59, 32768, 10578, 114, 114, 111, 119, 59, 32768, 8656, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 8660, 115, 1536, 69, 70, 71, 76, 83, 84, 2716, 2730, 2741, 2750, 2756, 2768, 113, 117, 97, 108, 71, 114, 101, 97, 116, 101, 114, 59, 32768, 8922, 117, 108, 108, 69, 113, 117, 97, 108, 59, 32768, 8806, 114, 101, 97, 116, 101, 114, 59, 32768, 8822, 101, 115, 115, 59, 32768, 10913, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 32768, 10877, 105, 108, 100, 101, 59, 32768, 8818, 114, 59, 32896, 55349, 56591, 512, 59, 101, 2785, 2787, 32768, 8920, 102, 116, 97, 114, 114, 111, 119, 59, 32768, 8666, 105, 100, 111, 116, 59, 32768, 319, 768, 110, 112, 119, 2811, 2899, 2904, 103, 1024, 76, 82, 108, 114, 2821, 2848, 2860, 2887, 101, 102, 116, 512, 65, 82, 2829, 2836, 114, 114, 111, 119, 59, 32768, 10229, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 32768, 10231, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 32768, 10230, 101, 102, 116, 512, 97, 114, 2868, 2875, 114, 114, 111, 119, 59, 32768, 10232, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 10234, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 10233, 102, 59, 32896, 55349, 56643, 101, 114, 512, 76, 82, 2911, 2922, 101, 102, 116, 65, 114, 114, 111, 119, 59, 32768, 8601, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 32768, 8600, 768, 99, 104, 116, 2941, 2945, 2948, 114, 59, 32768, 8466, 59, 32768, 8624, 114, 111, 107, 59, 32768, 321, 59, 32768, 8810, 2048, 97, 99, 101, 102, 105, 111, 115, 117, 2974, 2978, 2982, 3007, 3012, 3022, 3028, 3033, 112, 59, 32768, 10501, 121, 59, 32768, 1052, 512, 100, 108, 2987, 2998, 105, 117, 109, 83, 112, 97, 99, 101, 59, 32768, 8287, 108, 105, 110, 116, 114, 102, 59, 32768, 8499, 114, 59, 32896, 55349, 56592, 110, 117, 115, 80, 108, 117, 115, 59, 32768, 8723, 112, 102, 59, 32896, 55349, 56644, 99, 114, 59, 32768, 8499, 59, 32768, 924, 2304, 74, 97, 99, 101, 102, 111, 115, 116, 117, 3055, 3060, 3067, 3089, 3201, 3206, 3874, 3880, 3889, 99, 121, 59, 32768, 1034, 99, 117, 116, 101, 59, 32768, 323, 768, 97, 101, 121, 3074, 3080, 3086, 114, 111, 110, 59, 32768, 327, 100, 105, 108, 59, 32768, 325, 59, 32768, 1053, 768, 103, 115, 119, 3096, 3160, 3194, 97, 116, 105, 118, 101, 768, 77, 84, 86, 3108, 3121, 3145, 101, 100, 105, 117, 109, 83, 112, 97, 99, 101, 59, 32768, 8203, 104, 105, 512, 99, 110, 3128, 3137, 107, 83, 112, 97, 99, 101, 59, 32768, 8203, 83, 112, 97, 99, 101, 59, 32768, 8203, 101, 114, 121, 84, 104, 105, 110, 83, 112, 97, 99, 101, 59, 32768, 8203, 116, 101, 100, 512, 71, 76, 3168, 3184, 114, 101, 97, 116, 101, 114, 71, 114, 101, 97, 116, 101, 114, 59, 32768, 8811, 101, 115, 115, 76, 101, 115, 115, 59, 32768, 8810, 76, 105, 110, 101, 59, 32768, 10, 114, 59, 32896, 55349, 56593, 1024, 66, 110, 112, 116, 3215, 3222, 3238, 3242, 114, 101, 97, 107, 59, 32768, 8288, 66, 114, 101, 97, 107, 105, 110, 103, 83, 112, 97, 99, 101, 59, 32768, 160, 102, 59, 32768, 8469, 3328, 59, 67, 68, 69, 71, 72, 76, 78, 80, 82, 83, 84, 86, 3269, 3271, 3293, 3312, 3352, 3430, 3455, 3551, 3589, 3625, 3678, 3821, 3861, 32768, 10988, 512, 111, 117, 3276, 3286, 110, 103, 114, 117, 101, 110, 116, 59, 32768, 8802, 112, 67, 97, 112, 59, 32768, 8813, 111, 117, 98, 108, 101, 86, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 59, 32768, 8742, 768, 108, 113, 120, 3319, 3327, 3345, 101, 109, 101, 110, 116, 59, 32768, 8713, 117, 97, 108, 512, 59, 84, 3335, 3337, 32768, 8800, 105, 108, 100, 101, 59, 32896, 8770, 824, 105, 115, 116, 115, 59, 32768, 8708, 114, 101, 97, 116, 101, 114, 1792, 59, 69, 70, 71, 76, 83, 84, 3373, 3375, 3382, 3394, 3404, 3410, 3423, 32768, 8815, 113, 117, 97, 108, 59, 32768, 8817, 117, 108, 108, 69, 113, 117, 97, 108, 59, 32896, 8807, 824, 114, 101, 97, 116, 101, 114, 59, 32896, 8811, 824, 101, 115, 115, 59, 32768, 8825, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 32896, 10878, 824, 105, 108, 100, 101, 59, 32768, 8821, 117, 109, 112, 533, 3437, 3448, 111, 119, 110, 72, 117, 109, 112, 59, 32896, 8782, 824, 113, 117, 97, 108, 59, 32896, 8783, 824, 101, 512, 102, 115, 3461, 3492, 116, 84, 114, 105, 97, 110, 103, 108, 101, 768, 59, 66, 69, 3477, 3479, 3485, 32768, 8938, 97, 114, 59, 32896, 10703, 824, 113, 117, 97, 108, 59, 32768, 8940, 115, 1536, 59, 69, 71, 76, 83, 84, 3506, 3508, 3515, 3524, 3531, 3544, 32768, 8814, 113, 117, 97, 108, 59, 32768, 8816, 114, 101, 97, 116, 101, 114, 59, 32768, 8824, 101, 115, 115, 59, 32896, 8810, 824, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 32896, 10877, 824, 105, 108, 100, 101, 59, 32768, 8820, 101, 115, 116, 101, 100, 512, 71, 76, 3561, 3578, 114, 101, 97, 116, 101, 114, 71, 114, 101, 97, 116, 101, 114, 59, 32896, 10914, 824, 101, 115, 115, 76, 101, 115, 115, 59, 32896, 10913, 824, 114, 101, 99, 101, 100, 101, 115, 768, 59, 69, 83, 3603, 3605, 3613, 32768, 8832, 113, 117, 97, 108, 59, 32896, 10927, 824, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 32768, 8928, 512, 101, 105, 3630, 3645, 118, 101, 114, 115, 101, 69, 108, 101, 109, 101, 110, 116, 59, 32768, 8716, 103, 104, 116, 84, 114, 105, 97, 110, 103, 108, 101, 768, 59, 66, 69, 3663, 3665, 3671, 32768, 8939, 97, 114, 59, 32896, 10704, 824, 113, 117, 97, 108, 59, 32768, 8941, 512, 113, 117, 3683, 3732, 117, 97, 114, 101, 83, 117, 512, 98, 112, 3694, 3712, 115, 101, 116, 512, 59, 69, 3702, 3705, 32896, 8847, 824, 113, 117, 97, 108, 59, 32768, 8930, 101, 114, 115, 101, 116, 512, 59, 69, 3722, 3725, 32896, 8848, 824, 113, 117, 97, 108, 59, 32768, 8931, 768, 98, 99, 112, 3739, 3757, 3801, 115, 101, 116, 512, 59, 69, 3747, 3750, 32896, 8834, 8402, 113, 117, 97, 108, 59, 32768, 8840, 99, 101, 101, 100, 115, 1024, 59, 69, 83, 84, 3771, 3773, 3781, 3793, 32768, 8833, 113, 117, 97, 108, 59, 32896, 10928, 824, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 32768, 8929, 105, 108, 100, 101, 59, 32896, 8831, 824, 101, 114, 115, 101, 116, 512, 59, 69, 3811, 3814, 32896, 8835, 8402, 113, 117, 97, 108, 59, 32768, 8841, 105, 108, 100, 101, 1024, 59, 69, 70, 84, 3834, 3836, 3843, 3854, 32768, 8769, 113, 117, 97, 108, 59, 32768, 8772, 117, 108, 108, 69, 113, 117, 97, 108, 59, 32768, 8775, 105, 108, 100, 101, 59, 32768, 8777, 101, 114, 116, 105, 99, 97, 108, 66, 97, 114, 59, 32768, 8740, 99, 114, 59, 32896, 55349, 56489, 105, 108, 100, 101, 33024, 209, 59, 32768, 209, 59, 32768, 925, 3584, 69, 97, 99, 100, 102, 103, 109, 111, 112, 114, 115, 116, 117, 118, 3921, 3927, 3936, 3951, 3958, 3963, 3972, 3996, 4002, 4034, 4037, 4055, 4071, 4078, 108, 105, 103, 59, 32768, 338, 99, 117, 116, 101, 33024, 211, 59, 32768, 211, 512, 105, 121, 3941, 3948, 114, 99, 33024, 212, 59, 32768, 212, 59, 32768, 1054, 98, 108, 97, 99, 59, 32768, 336, 114, 59, 32896, 55349, 56594, 114, 97, 118, 101, 33024, 210, 59, 32768, 210, 768, 97, 101, 105, 3979, 3984, 3989, 99, 114, 59, 32768, 332, 103, 97, 59, 32768, 937, 99, 114, 111, 110, 59, 32768, 927, 112, 102, 59, 32896, 55349, 56646, 101, 110, 67, 117, 114, 108, 121, 512, 68, 81, 4014, 4027, 111, 117, 98, 108, 101, 81, 117, 111, 116, 101, 59, 32768, 8220, 117, 111, 116, 101, 59, 32768, 8216, 59, 32768, 10836, 512, 99, 108, 4042, 4047, 114, 59, 32896, 55349, 56490, 97, 115, 104, 33024, 216, 59, 32768, 216, 105, 573, 4060, 4067, 100, 101, 33024, 213, 59, 32768, 213, 101, 115, 59, 32768, 10807, 109, 108, 33024, 214, 59, 32768, 214, 101, 114, 512, 66, 80, 4085, 4109, 512, 97, 114, 4090, 4094, 114, 59, 32768, 8254, 97, 99, 512, 101, 107, 4101, 4104, 59, 32768, 9182, 101, 116, 59, 32768, 9140, 97, 114, 101, 110, 116, 104, 101, 115, 105, 115, 59, 32768, 9180, 2304, 97, 99, 102, 104, 105, 108, 111, 114, 115, 4141, 4150, 4154, 4159, 4163, 4166, 4176, 4198, 4284, 114, 116, 105, 97, 108, 68, 59, 32768, 8706, 121, 59, 32768, 1055, 114, 59, 32896, 55349, 56595, 105, 59, 32768, 934, 59, 32768, 928, 117, 115, 77, 105, 110, 117, 115, 59, 32768, 177, 512, 105, 112, 4181, 4194, 110, 99, 97, 114, 101, 112, 108, 97, 110, 101, 59, 32768, 8460, 102, 59, 32768, 8473, 1024, 59, 101, 105, 111, 4207, 4209, 4251, 4256, 32768, 10939, 99, 101, 100, 101, 115, 1024, 59, 69, 83, 84, 4223, 4225, 4232, 4244, 32768, 8826, 113, 117, 97, 108, 59, 32768, 10927, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 32768, 8828, 105, 108, 100, 101, 59, 32768, 8830, 109, 101, 59, 32768, 8243, 512, 100, 112, 4261, 4267, 117, 99, 116, 59, 32768, 8719, 111, 114, 116, 105, 111, 110, 512, 59, 97, 4278, 4280, 32768, 8759, 108, 59, 32768, 8733, 512, 99, 105, 4289, 4294, 114, 59, 32896, 55349, 56491, 59, 32768, 936, 1024, 85, 102, 111, 115, 4306, 4313, 4318, 4323, 79, 84, 33024, 34, 59, 32768, 34, 114, 59, 32896, 55349, 56596, 112, 102, 59, 32768, 8474, 99, 114, 59, 32896, 55349, 56492, 3072, 66, 69, 97, 99, 101, 102, 104, 105, 111, 114, 115, 117, 4354, 4360, 4366, 4395, 4417, 4473, 4477, 4481, 4743, 4764, 4776, 4788, 97, 114, 114, 59, 32768, 10512, 71, 33024, 174, 59, 32768, 174, 768, 99, 110, 114, 4373, 4379, 4383, 117, 116, 101, 59, 32768, 340, 103, 59, 32768, 10219, 114, 512, 59, 116, 4389, 4391, 32768, 8608, 108, 59, 32768, 10518, 768, 97, 101, 121, 4402, 4408, 4414, 114, 111, 110, 59, 32768, 344, 100, 105, 108, 59, 32768, 342, 59, 32768, 1056, 512, 59, 118, 4422, 4424, 32768, 8476, 101, 114, 115, 101, 512, 69, 85, 4433, 4458, 512, 108, 113, 4438, 4446, 101, 109, 101, 110, 116, 59, 32768, 8715, 117, 105, 108, 105, 98, 114, 105, 117, 109, 59, 32768, 8651, 112, 69, 113, 117, 105, 108, 105, 98, 114, 105, 117, 109, 59, 32768, 10607, 114, 59, 32768, 8476, 111, 59, 32768, 929, 103, 104, 116, 2048, 65, 67, 68, 70, 84, 85, 86, 97, 4501, 4547, 4556, 4607, 4614, 4671, 4719, 4736, 512, 110, 114, 4506, 4519, 103, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 32768, 10217, 114, 111, 119, 768, 59, 66, 76, 4529, 4531, 4536, 32768, 8594, 97, 114, 59, 32768, 8677, 101, 102, 116, 65, 114, 114, 111, 119, 59, 32768, 8644, 101, 105, 108, 105, 110, 103, 59, 32768, 8969, 111, 838, 4562, 0, 4575, 98, 108, 101, 66, 114, 97, 99, 107, 101, 116, 59, 32768, 10215, 110, 805, 4580, 0, 4591, 101, 101, 86, 101, 99, 116, 111, 114, 59, 32768, 10589, 101, 99, 116, 111, 114, 512, 59, 66, 4600, 4602, 32768, 8642, 97, 114, 59, 32768, 10581, 108, 111, 111, 114, 59, 32768, 8971, 512, 101, 114, 4619, 4644, 101, 768, 59, 65, 86, 4627, 4629, 4636, 32768, 8866, 114, 114, 111, 119, 59, 32768, 8614, 101, 99, 116, 111, 114, 59, 32768, 10587, 105, 97, 110, 103, 108, 101, 768, 59, 66, 69, 4657, 4659, 4664, 32768, 8883, 97, 114, 59, 32768, 10704, 113, 117, 97, 108, 59, 32768, 8885, 112, 768, 68, 84, 86, 4679, 4691, 4702, 111, 119, 110, 86, 101, 99, 116, 111, 114, 59, 32768, 10575, 101, 101, 86, 101, 99, 116, 111, 114, 59, 32768, 10588, 101, 99, 116, 111, 114, 512, 59, 66, 4712, 4714, 32768, 8638, 97, 114, 59, 32768, 10580, 101, 99, 116, 111, 114, 512, 59, 66, 4729, 4731, 32768, 8640, 97, 114, 59, 32768, 10579, 114, 114, 111, 119, 59, 32768, 8658, 512, 112, 117, 4748, 4752, 102, 59, 32768, 8477, 110, 100, 73, 109, 112, 108, 105, 101, 115, 59, 32768, 10608, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 8667, 512, 99, 104, 4781, 4785, 114, 59, 32768, 8475, 59, 32768, 8625, 108, 101, 68, 101, 108, 97, 121, 101, 100, 59, 32768, 10740, 3328, 72, 79, 97, 99, 102, 104, 105, 109, 111, 113, 115, 116, 117, 4827, 4842, 4849, 4856, 4889, 4894, 4949, 4955, 4967, 4973, 5059, 5065, 5070, 512, 67, 99, 4832, 4838, 72, 99, 121, 59, 32768, 1065, 121, 59, 32768, 1064, 70, 84, 99, 121, 59, 32768, 1068, 99, 117, 116, 101, 59, 32768, 346, 1280, 59, 97, 101, 105, 121, 4867, 4869, 4875, 4881, 4886, 32768, 10940, 114, 111, 110, 59, 32768, 352, 100, 105, 108, 59, 32768, 350, 114, 99, 59, 32768, 348, 59, 32768, 1057, 114, 59, 32896, 55349, 56598, 111, 114, 116, 1024, 68, 76, 82, 85, 4906, 4917, 4928, 4940, 111, 119, 110, 65, 114, 114, 111, 119, 59, 32768, 8595, 101, 102, 116, 65, 114, 114, 111, 119, 59, 32768, 8592, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 32768, 8594, 112, 65, 114, 114, 111, 119, 59, 32768, 8593, 103, 109, 97, 59, 32768, 931, 97, 108, 108, 67, 105, 114, 99, 108, 101, 59, 32768, 8728, 112, 102, 59, 32896, 55349, 56650, 1091, 4979, 0, 0, 4983, 116, 59, 32768, 8730, 97, 114, 101, 1024, 59, 73, 83, 85, 4994, 4996, 5010, 5052, 32768, 9633, 110, 116, 101, 114, 115, 101, 99, 116, 105, 111, 110, 59, 32768, 8851, 117, 512, 98, 112, 5016, 5033, 115, 101, 116, 512, 59, 69, 5024, 5026, 32768, 8847, 113, 117, 97, 108, 59, 32768, 8849, 101, 114, 115, 101, 116, 512, 59, 69, 5043, 5045, 32768, 8848, 113, 117, 97, 108, 59, 32768, 8850, 110, 105, 111, 110, 59, 32768, 8852, 99, 114, 59, 32896, 55349, 56494, 97, 114, 59, 32768, 8902, 1024, 98, 99, 109, 112, 5079, 5102, 5155, 5158, 512, 59, 115, 5084, 5086, 32768, 8912, 101, 116, 512, 59, 69, 5093, 5095, 32768, 8912, 113, 117, 97, 108, 59, 32768, 8838, 512, 99, 104, 5107, 5148, 101, 101, 100, 115, 1024, 59, 69, 83, 84, 5120, 5122, 5129, 5141, 32768, 8827, 113, 117, 97, 108, 59, 32768, 10928, 108, 97, 110, 116, 69, 113, 117, 97, 108, 59, 32768, 8829, 105, 108, 100, 101, 59, 32768, 8831, 84, 104, 97, 116, 59, 32768, 8715, 59, 32768, 8721, 768, 59, 101, 115, 5165, 5167, 5185, 32768, 8913, 114, 115, 101, 116, 512, 59, 69, 5176, 5178, 32768, 8835, 113, 117, 97, 108, 59, 32768, 8839, 101, 116, 59, 32768, 8913, 2816, 72, 82, 83, 97, 99, 102, 104, 105, 111, 114, 115, 5213, 5221, 5227, 5241, 5252, 5274, 5279, 5323, 5362, 5368, 5378, 79, 82, 78, 33024, 222, 59, 32768, 222, 65, 68, 69, 59, 32768, 8482, 512, 72, 99, 5232, 5237, 99, 121, 59, 32768, 1035, 121, 59, 32768, 1062, 512, 98, 117, 5246, 5249, 59, 32768, 9, 59, 32768, 932, 768, 97, 101, 121, 5259, 5265, 5271, 114, 111, 110, 59, 32768, 356, 100, 105, 108, 59, 32768, 354, 59, 32768, 1058, 114, 59, 32896, 55349, 56599, 512, 101, 105, 5284, 5300, 835, 5289, 0, 5297, 101, 102, 111, 114, 101, 59, 32768, 8756, 97, 59, 32768, 920, 512, 99, 110, 5305, 5315, 107, 83, 112, 97, 99, 101, 59, 32896, 8287, 8202, 83, 112, 97, 99, 101, 59, 32768, 8201, 108, 100, 101, 1024, 59, 69, 70, 84, 5335, 5337, 5344, 5355, 32768, 8764, 113, 117, 97, 108, 59, 32768, 8771, 117, 108, 108, 69, 113, 117, 97, 108, 59, 32768, 8773, 105, 108, 100, 101, 59, 32768, 8776, 112, 102, 59, 32896, 55349, 56651, 105, 112, 108, 101, 68, 111, 116, 59, 32768, 8411, 512, 99, 116, 5383, 5388, 114, 59, 32896, 55349, 56495, 114, 111, 107, 59, 32768, 358, 5426, 5417, 5444, 5458, 5473, 0, 5480, 5485, 0, 0, 0, 0, 0, 5494, 5500, 5564, 5579, 0, 5726, 5732, 5738, 5745, 512, 99, 114, 5421, 5429, 117, 116, 101, 33024, 218, 59, 32768, 218, 114, 512, 59, 111, 5435, 5437, 32768, 8607, 99, 105, 114, 59, 32768, 10569, 114, 820, 5449, 0, 5453, 121, 59, 32768, 1038, 118, 101, 59, 32768, 364, 512, 105, 121, 5462, 5469, 114, 99, 33024, 219, 59, 32768, 219, 59, 32768, 1059, 98, 108, 97, 99, 59, 32768, 368, 114, 59, 32896, 55349, 56600, 114, 97, 118, 101, 33024, 217, 59, 32768, 217, 97, 99, 114, 59, 32768, 362, 512, 100, 105, 5504, 5548, 101, 114, 512, 66, 80, 5511, 5535, 512, 97, 114, 5516, 5520, 114, 59, 32768, 95, 97, 99, 512, 101, 107, 5527, 5530, 59, 32768, 9183, 101, 116, 59, 32768, 9141, 97, 114, 101, 110, 116, 104, 101, 115, 105, 115, 59, 32768, 9181, 111, 110, 512, 59, 80, 5555, 5557, 32768, 8899, 108, 117, 115, 59, 32768, 8846, 512, 103, 112, 5568, 5573, 111, 110, 59, 32768, 370, 102, 59, 32896, 55349, 56652, 2048, 65, 68, 69, 84, 97, 100, 112, 115, 5595, 5624, 5635, 5648, 5664, 5671, 5682, 5712, 114, 114, 111, 119, 768, 59, 66, 68, 5606, 5608, 5613, 32768, 8593, 97, 114, 59, 32768, 10514, 111, 119, 110, 65, 114, 114, 111, 119, 59, 32768, 8645, 111, 119, 110, 65, 114, 114, 111, 119, 59, 32768, 8597, 113, 117, 105, 108, 105, 98, 114, 105, 117, 109, 59, 32768, 10606, 101, 101, 512, 59, 65, 5655, 5657, 32768, 8869, 114, 114, 111, 119, 59, 32768, 8613, 114, 114, 111, 119, 59, 32768, 8657, 111, 119, 110, 97, 114, 114, 111, 119, 59, 32768, 8661, 101, 114, 512, 76, 82, 5689, 5700, 101, 102, 116, 65, 114, 114, 111, 119, 59, 32768, 8598, 105, 103, 104, 116, 65, 114, 114, 111, 119, 59, 32768, 8599, 105, 512, 59, 108, 5718, 5720, 32768, 978, 111, 110, 59, 32768, 933, 105, 110, 103, 59, 32768, 366, 99, 114, 59, 32896, 55349, 56496, 105, 108, 100, 101, 59, 32768, 360, 109, 108, 33024, 220, 59, 32768, 220, 2304, 68, 98, 99, 100, 101, 102, 111, 115, 118, 5770, 5776, 5781, 5785, 5798, 5878, 5883, 5889, 5895, 97, 115, 104, 59, 32768, 8875, 97, 114, 59, 32768, 10987, 121, 59, 32768, 1042, 97, 115, 104, 512, 59, 108, 5793, 5795, 32768, 8873, 59, 32768, 10982, 512, 101, 114, 5803, 5806, 59, 32768, 8897, 768, 98, 116, 121, 5813, 5818, 5866, 97, 114, 59, 32768, 8214, 512, 59, 105, 5823, 5825, 32768, 8214, 99, 97, 108, 1024, 66, 76, 83, 84, 5837, 5842, 5848, 5859, 97, 114, 59, 32768, 8739, 105, 110, 101, 59, 32768, 124, 101, 112, 97, 114, 97, 116, 111, 114, 59, 32768, 10072, 105, 108, 100, 101, 59, 32768, 8768, 84, 104, 105, 110, 83, 112, 97, 99, 101, 59, 32768, 8202, 114, 59, 32896, 55349, 56601, 112, 102, 59, 32896, 55349, 56653, 99, 114, 59, 32896, 55349, 56497, 100, 97, 115, 104, 59, 32768, 8874, 1280, 99, 101, 102, 111, 115, 5913, 5919, 5925, 5930, 5936, 105, 114, 99, 59, 32768, 372, 100, 103, 101, 59, 32768, 8896, 114, 59, 32896, 55349, 56602, 112, 102, 59, 32896, 55349, 56654, 99, 114, 59, 32896, 55349, 56498, 1024, 102, 105, 111, 115, 5951, 5956, 5959, 5965, 114, 59, 32896, 55349, 56603, 59, 32768, 926, 112, 102, 59, 32896, 55349, 56655, 99, 114, 59, 32896, 55349, 56499, 2304, 65, 73, 85, 97, 99, 102, 111, 115, 117, 5990, 5995, 6000, 6005, 6014, 6027, 6032, 6038, 6044, 99, 121, 59, 32768, 1071, 99, 121, 59, 32768, 1031, 99, 121, 59, 32768, 1070, 99, 117, 116, 101, 33024, 221, 59, 32768, 221, 512, 105, 121, 6019, 6024, 114, 99, 59, 32768, 374, 59, 32768, 1067, 114, 59, 32896, 55349, 56604, 112, 102, 59, 32896, 55349, 56656, 99, 114, 59, 32896, 55349, 56500, 109, 108, 59, 32768, 376, 2048, 72, 97, 99, 100, 101, 102, 111, 115, 6066, 6071, 6078, 6092, 6097, 6119, 6123, 6128, 99, 121, 59, 32768, 1046, 99, 117, 116, 101, 59, 32768, 377, 512, 97, 121, 6083, 6089, 114, 111, 110, 59, 32768, 381, 59, 32768, 1047, 111, 116, 59, 32768, 379, 835, 6102, 0, 6116, 111, 87, 105, 100, 116, 104, 83, 112, 97, 99, 101, 59, 32768, 8203, 97, 59, 32768, 918, 114, 59, 32768, 8488, 112, 102, 59, 32768, 8484, 99, 114, 59, 32896, 55349, 56501, 5938, 6159, 6168, 6175, 0, 6214, 6222, 6233, 0, 0, 0, 0, 6242, 6267, 6290, 6429, 6444, 0, 6495, 6503, 6531, 6540, 0, 6547, 99, 117, 116, 101, 33024, 225, 59, 32768, 225, 114, 101, 118, 101, 59, 32768, 259, 1536, 59, 69, 100, 105, 117, 121, 6187, 6189, 6193, 6196, 6203, 6210, 32768, 8766, 59, 32896, 8766, 819, 59, 32768, 8767, 114, 99, 33024, 226, 59, 32768, 226, 116, 101, 33024, 180, 59, 32768, 180, 59, 32768, 1072, 108, 105, 103, 33024, 230, 59, 32768, 230, 512, 59, 114, 6226, 6228, 32768, 8289, 59, 32896, 55349, 56606, 114, 97, 118, 101, 33024, 224, 59, 32768, 224, 512, 101, 112, 6246, 6261, 512, 102, 112, 6251, 6257, 115, 121, 109, 59, 32768, 8501, 104, 59, 32768, 8501, 104, 97, 59, 32768, 945, 512, 97, 112, 6271, 6284, 512, 99, 108, 6276, 6280, 114, 59, 32768, 257, 103, 59, 32768, 10815, 33024, 38, 59, 32768, 38, 1077, 6295, 0, 0, 6326, 1280, 59, 97, 100, 115, 118, 6305, 6307, 6312, 6315, 6322, 32768, 8743, 110, 100, 59, 32768, 10837, 59, 32768, 10844, 108, 111, 112, 101, 59, 32768, 10840, 59, 32768, 10842, 1792, 59, 101, 108, 109, 114, 115, 122, 6340, 6342, 6345, 6349, 6391, 6410, 6422, 32768, 8736, 59, 32768, 10660, 101, 59, 32768, 8736, 115, 100, 512, 59, 97, 6356, 6358, 32768, 8737, 2098, 6368, 6371, 6374, 6377, 6380, 6383, 6386, 6389, 59, 32768, 10664, 59, 32768, 10665, 59, 32768, 10666, 59, 32768, 10667, 59, 32768, 10668, 59, 32768, 10669, 59, 32768, 10670, 59, 32768, 10671, 116, 512, 59, 118, 6397, 6399, 32768, 8735, 98, 512, 59, 100, 6405, 6407, 32768, 8894, 59, 32768, 10653, 512, 112, 116, 6415, 6419, 104, 59, 32768, 8738, 59, 32768, 197, 97, 114, 114, 59, 32768, 9084, 512, 103, 112, 6433, 6438, 111, 110, 59, 32768, 261, 102, 59, 32896, 55349, 56658, 1792, 59, 69, 97, 101, 105, 111, 112, 6458, 6460, 6463, 6469, 6472, 6476, 6480, 32768, 8776, 59, 32768, 10864, 99, 105, 114, 59, 32768, 10863, 59, 32768, 8778, 100, 59, 32768, 8779, 115, 59, 32768, 39, 114, 111, 120, 512, 59, 101, 6488, 6490, 32768, 8776, 113, 59, 32768, 8778, 105, 110, 103, 33024, 229, 59, 32768, 229, 768, 99, 116, 121, 6509, 6514, 6517, 114, 59, 32896, 55349, 56502, 59, 32768, 42, 109, 112, 512, 59, 101, 6524, 6526, 32768, 8776, 113, 59, 32768, 8781, 105, 108, 100, 101, 33024, 227, 59, 32768, 227, 109, 108, 33024, 228, 59, 32768, 228, 512, 99, 105, 6551, 6559, 111, 110, 105, 110, 116, 59, 32768, 8755, 110, 116, 59, 32768, 10769, 4096, 78, 97, 98, 99, 100, 101, 102, 105, 107, 108, 110, 111, 112, 114, 115, 117, 6597, 6602, 6673, 6688, 6701, 6707, 6768, 6773, 6891, 6898, 6999, 7023, 7309, 7316, 7334, 7383, 111, 116, 59, 32768, 10989, 512, 99, 114, 6607, 6652, 107, 1024, 99, 101, 112, 115, 6617, 6623, 6632, 6639, 111, 110, 103, 59, 32768, 8780, 112, 115, 105, 108, 111, 110, 59, 32768, 1014, 114, 105, 109, 101, 59, 32768, 8245, 105, 109, 512, 59, 101, 6646, 6648, 32768, 8765, 113, 59, 32768, 8909, 583, 6656, 6661, 101, 101, 59, 32768, 8893, 101, 100, 512, 59, 103, 6667, 6669, 32768, 8965, 101, 59, 32768, 8965, 114, 107, 512, 59, 116, 6680, 6682, 32768, 9141, 98, 114, 107, 59, 32768, 9142, 512, 111, 121, 6693, 6698, 110, 103, 59, 32768, 8780, 59, 32768, 1073, 113, 117, 111, 59, 32768, 8222, 1280, 99, 109, 112, 114, 116, 6718, 6731, 6738, 6743, 6749, 97, 117, 115, 512, 59, 101, 6726, 6728, 32768, 8757, 59, 32768, 8757, 112, 116, 121, 118, 59, 32768, 10672, 115, 105, 59, 32768, 1014, 110, 111, 117, 59, 32768, 8492, 768, 97, 104, 119, 6756, 6759, 6762, 59, 32768, 946, 59, 32768, 8502, 101, 101, 110, 59, 32768, 8812, 114, 59, 32896, 55349, 56607, 103, 1792, 99, 111, 115, 116, 117, 118, 119, 6789, 6809, 6834, 6850, 6872, 6879, 6884, 768, 97, 105, 117, 6796, 6800, 6805, 112, 59, 32768, 8898, 114, 99, 59, 32768, 9711, 112, 59, 32768, 8899, 768, 100, 112, 116, 6816, 6821, 6827, 111, 116, 59, 32768, 10752, 108, 117, 115, 59, 32768, 10753, 105, 109, 101, 115, 59, 32768, 10754, 1090, 6840, 0, 0, 6846, 99, 117, 112, 59, 32768, 10758, 97, 114, 59, 32768, 9733, 114, 105, 97, 110, 103, 108, 101, 512, 100, 117, 6862, 6868, 111, 119, 110, 59, 32768, 9661, 112, 59, 32768, 9651, 112, 108, 117, 115, 59, 32768, 10756, 101, 101, 59, 32768, 8897, 101, 100, 103, 101, 59, 32768, 8896, 97, 114, 111, 119, 59, 32768, 10509, 768, 97, 107, 111, 6905, 6976, 6994, 512, 99, 110, 6910, 6972, 107, 768, 108, 115, 116, 6918, 6927, 6935, 111, 122, 101, 110, 103, 101, 59, 32768, 10731, 113, 117, 97, 114, 101, 59, 32768, 9642, 114, 105, 97, 110, 103, 108, 101, 1024, 59, 100, 108, 114, 6951, 6953, 6959, 6965, 32768, 9652, 111, 119, 110, 59, 32768, 9662, 101, 102, 116, 59, 32768, 9666, 105, 103, 104, 116, 59, 32768, 9656, 107, 59, 32768, 9251, 770, 6981, 0, 6991, 771, 6985, 0, 6988, 59, 32768, 9618, 59, 32768, 9617, 52, 59, 32768, 9619, 99, 107, 59, 32768, 9608, 512, 101, 111, 7004, 7019, 512, 59, 113, 7009, 7012, 32896, 61, 8421, 117, 105, 118, 59, 32896, 8801, 8421, 116, 59, 32768, 8976, 1024, 112, 116, 119, 120, 7032, 7037, 7049, 7055, 102, 59, 32896, 55349, 56659, 512, 59, 116, 7042, 7044, 32768, 8869, 111, 109, 59, 32768, 8869, 116, 105, 101, 59, 32768, 8904, 3072, 68, 72, 85, 86, 98, 100, 104, 109, 112, 116, 117, 118, 7080, 7101, 7126, 7147, 7182, 7187, 7208, 7233, 7240, 7246, 7253, 7274, 1024, 76, 82, 108, 114, 7089, 7092, 7095, 7098, 59, 32768, 9559, 59, 32768, 9556, 59, 32768, 9558, 59, 32768, 9555, 1280, 59, 68, 85, 100, 117, 7112, 7114, 7117, 7120, 7123, 32768, 9552, 59, 32768, 9574, 59, 32768, 9577, 59, 32768, 9572, 59, 32768, 9575, 1024, 76, 82, 108, 114, 7135, 7138, 7141, 7144, 59, 32768, 9565, 59, 32768, 9562, 59, 32768, 9564, 59, 32768, 9561, 1792, 59, 72, 76, 82, 104, 108, 114, 7162, 7164, 7167, 7170, 7173, 7176, 7179, 32768, 9553, 59, 32768, 9580, 59, 32768, 9571, 59, 32768, 9568, 59, 32768, 9579, 59, 32768, 9570, 59, 32768, 9567, 111, 120, 59, 32768, 10697, 1024, 76, 82, 108, 114, 7196, 7199, 7202, 7205, 59, 32768, 9557, 59, 32768, 9554, 59, 32768, 9488, 59, 32768, 9484, 1280, 59, 68, 85, 100, 117, 7219, 7221, 7224, 7227, 7230, 32768, 9472, 59, 32768, 9573, 59, 32768, 9576, 59, 32768, 9516, 59, 32768, 9524, 105, 110, 117, 115, 59, 32768, 8863, 108, 117, 115, 59, 32768, 8862, 105, 109, 101, 115, 59, 32768, 8864, 1024, 76, 82, 108, 114, 7262, 7265, 7268, 7271, 59, 32768, 9563, 59, 32768, 9560, 59, 32768, 9496, 59, 32768, 9492, 1792, 59, 72, 76, 82, 104, 108, 114, 7289, 7291, 7294, 7297, 7300, 7303, 7306, 32768, 9474, 59, 32768, 9578, 59, 32768, 9569, 59, 32768, 9566, 59, 32768, 9532, 59, 32768, 9508, 59, 32768, 9500, 114, 105, 109, 101, 59, 32768, 8245, 512, 101, 118, 7321, 7326, 118, 101, 59, 32768, 728, 98, 97, 114, 33024, 166, 59, 32768, 166, 1024, 99, 101, 105, 111, 7343, 7348, 7353, 7364, 114, 59, 32896, 55349, 56503, 109, 105, 59, 32768, 8271, 109, 512, 59, 101, 7359, 7361, 32768, 8765, 59, 32768, 8909, 108, 768, 59, 98, 104, 7372, 7374, 7377, 32768, 92, 59, 32768, 10693, 115, 117, 98, 59, 32768, 10184, 573, 7387, 7399, 108, 512, 59, 101, 7392, 7394, 32768, 8226, 116, 59, 32768, 8226, 112, 768, 59, 69, 101, 7406, 7408, 7411, 32768, 8782, 59, 32768, 10926, 512, 59, 113, 7416, 7418, 32768, 8783, 59, 32768, 8783, 6450, 7448, 0, 7523, 7571, 7576, 7613, 0, 7618, 7647, 0, 0, 7764, 0, 0, 7779, 0, 0, 7899, 7914, 7949, 7955, 0, 8158, 0, 8176, 768, 99, 112, 114, 7454, 7460, 7509, 117, 116, 101, 59, 32768, 263, 1536, 59, 97, 98, 99, 100, 115, 7473, 7475, 7480, 7487, 7500, 7505, 32768, 8745, 110, 100, 59, 32768, 10820, 114, 99, 117, 112, 59, 32768, 10825, 512, 97, 117, 7492, 7496, 112, 59, 32768, 10827, 112, 59, 32768, 10823, 111, 116, 59, 32768, 10816, 59, 32896, 8745, 65024, 512, 101, 111, 7514, 7518, 116, 59, 32768, 8257, 110, 59, 32768, 711, 1024, 97, 101, 105, 117, 7531, 7544, 7552, 7557, 833, 7536, 0, 7540, 115, 59, 32768, 10829, 111, 110, 59, 32768, 269, 100, 105, 108, 33024, 231, 59, 32768, 231, 114, 99, 59, 32768, 265, 112, 115, 512, 59, 115, 7564, 7566, 32768, 10828, 109, 59, 32768, 10832, 111, 116, 59, 32768, 267, 768, 100, 109, 110, 7582, 7589, 7596, 105, 108, 33024, 184, 59, 32768, 184, 112, 116, 121, 118, 59, 32768, 10674, 116, 33280, 162, 59, 101, 7603, 7605, 32768, 162, 114, 100, 111, 116, 59, 32768, 183, 114, 59, 32896, 55349, 56608, 768, 99, 101, 105, 7624, 7628, 7643, 121, 59, 32768, 1095, 99, 107, 512, 59, 109, 7635, 7637, 32768, 10003, 97, 114, 107, 59, 32768, 10003, 59, 32768, 967, 114, 1792, 59, 69, 99, 101, 102, 109, 115, 7662, 7664, 7667, 7742, 7745, 7752, 7757, 32768, 9675, 59, 32768, 10691, 768, 59, 101, 108, 7674, 7676, 7680, 32768, 710, 113, 59, 32768, 8791, 101, 1074, 7687, 0, 0, 7709, 114, 114, 111, 119, 512, 108, 114, 7695, 7701, 101, 102, 116, 59, 32768, 8634, 105, 103, 104, 116, 59, 32768, 8635, 1280, 82, 83, 97, 99, 100, 7719, 7722, 7725, 7730, 7736, 59, 32768, 174, 59, 32768, 9416, 115, 116, 59, 32768, 8859, 105, 114, 99, 59, 32768, 8858, 97, 115, 104, 59, 32768, 8861, 59, 32768, 8791, 110, 105, 110, 116, 59, 32768, 10768, 105, 100, 59, 32768, 10991, 99, 105, 114, 59, 32768, 10690, 117, 98, 115, 512, 59, 117, 7771, 7773, 32768, 9827, 105, 116, 59, 32768, 9827, 1341, 7785, 7804, 7850, 0, 7871, 111, 110, 512, 59, 101, 7791, 7793, 32768, 58, 512, 59, 113, 7798, 7800, 32768, 8788, 59, 32768, 8788, 1086, 7809, 0, 0, 7820, 97, 512, 59, 116, 7814, 7816, 32768, 44, 59, 32768, 64, 768, 59, 102, 108, 7826, 7828, 7832, 32768, 8705, 110, 59, 32768, 8728, 101, 512, 109, 120, 7838, 7844, 101, 110, 116, 59, 32768, 8705, 101, 115, 59, 32768, 8450, 824, 7854, 0, 7866, 512, 59, 100, 7858, 7860, 32768, 8773, 111, 116, 59, 32768, 10861, 110, 116, 59, 32768, 8750, 768, 102, 114, 121, 7877, 7881, 7886, 59, 32896, 55349, 56660, 111, 100, 59, 32768, 8720, 33280, 169, 59, 115, 7892, 7894, 32768, 169, 114, 59, 32768, 8471, 512, 97, 111, 7903, 7908, 114, 114, 59, 32768, 8629, 115, 115, 59, 32768, 10007, 512, 99, 117, 7918, 7923, 114, 59, 32896, 55349, 56504, 512, 98, 112, 7928, 7938, 512, 59, 101, 7933, 7935, 32768, 10959, 59, 32768, 10961, 512, 59, 101, 7943, 7945, 32768, 10960, 59, 32768, 10962, 100, 111, 116, 59, 32768, 8943, 1792, 100, 101, 108, 112, 114, 118, 119, 7969, 7983, 7996, 8009, 8057, 8147, 8152, 97, 114, 114, 512, 108, 114, 7977, 7980, 59, 32768, 10552, 59, 32768, 10549, 1089, 7989, 0, 0, 7993, 114, 59, 32768, 8926, 99, 59, 32768, 8927, 97, 114, 114, 512, 59, 112, 8004, 8006, 32768, 8630, 59, 32768, 10557, 1536, 59, 98, 99, 100, 111, 115, 8022, 8024, 8031, 8044, 8049, 8053, 32768, 8746, 114, 99, 97, 112, 59, 32768, 10824, 512, 97, 117, 8036, 8040, 112, 59, 32768, 10822, 112, 59, 32768, 10826, 111, 116, 59, 32768, 8845, 114, 59, 32768, 10821, 59, 32896, 8746, 65024, 1024, 97, 108, 114, 118, 8066, 8078, 8116, 8123, 114, 114, 512, 59, 109, 8073, 8075, 32768, 8631, 59, 32768, 10556, 121, 768, 101, 118, 119, 8086, 8104, 8109, 113, 1089, 8093, 0, 0, 8099, 114, 101, 99, 59, 32768, 8926, 117, 99, 99, 59, 32768, 8927, 101, 101, 59, 32768, 8910, 101, 100, 103, 101, 59, 32768, 8911, 101, 110, 33024, 164, 59, 32768, 164, 101, 97, 114, 114, 111, 119, 512, 108, 114, 8134, 8140, 101, 102, 116, 59, 32768, 8630, 105, 103, 104, 116, 59, 32768, 8631, 101, 101, 59, 32768, 8910, 101, 100, 59, 32768, 8911, 512, 99, 105, 8162, 8170, 111, 110, 105, 110, 116, 59, 32768, 8754, 110, 116, 59, 32768, 8753, 108, 99, 116, 121, 59, 32768, 9005, 4864, 65, 72, 97, 98, 99, 100, 101, 102, 104, 105, 106, 108, 111, 114, 115, 116, 117, 119, 122, 8221, 8226, 8231, 8267, 8282, 8296, 8327, 8351, 8366, 8379, 8466, 8471, 8487, 8621, 8647, 8676, 8697, 8712, 8720, 114, 114, 59, 32768, 8659, 97, 114, 59, 32768, 10597, 1024, 103, 108, 114, 115, 8240, 8246, 8252, 8256, 103, 101, 114, 59, 32768, 8224, 101, 116, 104, 59, 32768, 8504, 114, 59, 32768, 8595, 104, 512, 59, 118, 8262, 8264, 32768, 8208, 59, 32768, 8867, 572, 8271, 8278, 97, 114, 111, 119, 59, 32768, 10511, 97, 99, 59, 32768, 733, 512, 97, 121, 8287, 8293, 114, 111, 110, 59, 32768, 271, 59, 32768, 1076, 768, 59, 97, 111, 8303, 8305, 8320, 32768, 8518, 512, 103, 114, 8310, 8316, 103, 101, 114, 59, 32768, 8225, 114, 59, 32768, 8650, 116, 115, 101, 113, 59, 32768, 10871, 768, 103, 108, 109, 8334, 8339, 8344, 33024, 176, 59, 32768, 176, 116, 97, 59, 32768, 948, 112, 116, 121, 118, 59, 32768, 10673, 512, 105, 114, 8356, 8362, 115, 104, 116, 59, 32768, 10623, 59, 32896, 55349, 56609, 97, 114, 512, 108, 114, 8373, 8376, 59, 32768, 8643, 59, 32768, 8642, 1280, 97, 101, 103, 115, 118, 8390, 8418, 8421, 8428, 8433, 109, 768, 59, 111, 115, 8398, 8400, 8415, 32768, 8900, 110, 100, 512, 59, 115, 8407, 8409, 32768, 8900, 117, 105, 116, 59, 32768, 9830, 59, 32768, 9830, 59, 32768, 168, 97, 109, 109, 97, 59, 32768, 989, 105, 110, 59, 32768, 8946, 768, 59, 105, 111, 8440, 8442, 8461, 32768, 247, 100, 101, 33280, 247, 59, 111, 8450, 8452, 32768, 247, 110, 116, 105, 109, 101, 115, 59, 32768, 8903, 110, 120, 59, 32768, 8903, 99, 121, 59, 32768, 1106, 99, 1088, 8478, 0, 0, 8483, 114, 110, 59, 32768, 8990, 111, 112, 59, 32768, 8973, 1280, 108, 112, 116, 117, 119, 8498, 8504, 8509, 8556, 8570, 108, 97, 114, 59, 32768, 36, 102, 59, 32896, 55349, 56661, 1280, 59, 101, 109, 112, 115, 8520, 8522, 8535, 8542, 8548, 32768, 729, 113, 512, 59, 100, 8528, 8530, 32768, 8784, 111, 116, 59, 32768, 8785, 105, 110, 117, 115, 59, 32768, 8760, 108, 117, 115, 59, 32768, 8724, 113, 117, 97, 114, 101, 59, 32768, 8865, 98, 108, 101, 98, 97, 114, 119, 101, 100, 103, 101, 59, 32768, 8966, 110, 768, 97, 100, 104, 8578, 8585, 8597, 114, 114, 111, 119, 59, 32768, 8595, 111, 119, 110, 97, 114, 114, 111, 119, 115, 59, 32768, 8650, 97, 114, 112, 111, 111, 110, 512, 108, 114, 8608, 8614, 101, 102, 116, 59, 32768, 8643, 105, 103, 104, 116, 59, 32768, 8642, 563, 8625, 8633, 107, 97, 114, 111, 119, 59, 32768, 10512, 1088, 8638, 0, 0, 8643, 114, 110, 59, 32768, 8991, 111, 112, 59, 32768, 8972, 768, 99, 111, 116, 8654, 8666, 8670, 512, 114, 121, 8659, 8663, 59, 32896, 55349, 56505, 59, 32768, 1109, 108, 59, 32768, 10742, 114, 111, 107, 59, 32768, 273, 512, 100, 114, 8681, 8686, 111, 116, 59, 32768, 8945, 105, 512, 59, 102, 8692, 8694, 32768, 9663, 59, 32768, 9662, 512, 97, 104, 8702, 8707, 114, 114, 59, 32768, 8693, 97, 114, 59, 32768, 10607, 97, 110, 103, 108, 101, 59, 32768, 10662, 512, 99, 105, 8725, 8729, 121, 59, 32768, 1119, 103, 114, 97, 114, 114, 59, 32768, 10239, 4608, 68, 97, 99, 100, 101, 102, 103, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 120, 8774, 8788, 8807, 8844, 8849, 8852, 8866, 8895, 8929, 8977, 8989, 9004, 9046, 9136, 9151, 9171, 9184, 9199, 512, 68, 111, 8779, 8784, 111, 116, 59, 32768, 10871, 116, 59, 32768, 8785, 512, 99, 115, 8793, 8801, 117, 116, 101, 33024, 233, 59, 32768, 233, 116, 101, 114, 59, 32768, 10862, 1024, 97, 105, 111, 121, 8816, 8822, 8835, 8841, 114, 111, 110, 59, 32768, 283, 114, 512, 59, 99, 8828, 8830, 32768, 8790, 33024, 234, 59, 32768, 234, 108, 111, 110, 59, 32768, 8789, 59, 32768, 1101, 111, 116, 59, 32768, 279, 59, 32768, 8519, 512, 68, 114, 8857, 8862, 111, 116, 59, 32768, 8786, 59, 32896, 55349, 56610, 768, 59, 114, 115, 8873, 8875, 8883, 32768, 10906, 97, 118, 101, 33024, 232, 59, 32768, 232, 512, 59, 100, 8888, 8890, 32768, 10902, 111, 116, 59, 32768, 10904, 1024, 59, 105, 108, 115, 8904, 8906, 8914, 8917, 32768, 10905, 110, 116, 101, 114, 115, 59, 32768, 9191, 59, 32768, 8467, 512, 59, 100, 8922, 8924, 32768, 10901, 111, 116, 59, 32768, 10903, 768, 97, 112, 115, 8936, 8941, 8960, 99, 114, 59, 32768, 275, 116, 121, 768, 59, 115, 118, 8950, 8952, 8957, 32768, 8709, 101, 116, 59, 32768, 8709, 59, 32768, 8709, 112, 512, 49, 59, 8966, 8975, 516, 8970, 8973, 59, 32768, 8196, 59, 32768, 8197, 32768, 8195, 512, 103, 115, 8982, 8985, 59, 32768, 331, 112, 59, 32768, 8194, 512, 103, 112, 8994, 8999, 111, 110, 59, 32768, 281, 102, 59, 32896, 55349, 56662, 768, 97, 108, 115, 9011, 9023, 9028, 114, 512, 59, 115, 9017, 9019, 32768, 8917, 108, 59, 32768, 10723, 117, 115, 59, 32768, 10865, 105, 768, 59, 108, 118, 9036, 9038, 9043, 32768, 949, 111, 110, 59, 32768, 949, 59, 32768, 1013, 1024, 99, 115, 117, 118, 9055, 9071, 9099, 9128, 512, 105, 111, 9060, 9065, 114, 99, 59, 32768, 8790, 108, 111, 110, 59, 32768, 8789, 1082, 9077, 0, 0, 9081, 109, 59, 32768, 8770, 97, 110, 116, 512, 103, 108, 9088, 9093, 116, 114, 59, 32768, 10902, 101, 115, 115, 59, 32768, 10901, 768, 97, 101, 105, 9106, 9111, 9116, 108, 115, 59, 32768, 61, 115, 116, 59, 32768, 8799, 118, 512, 59, 68, 9122, 9124, 32768, 8801, 68, 59, 32768, 10872, 112, 97, 114, 115, 108, 59, 32768, 10725, 512, 68, 97, 9141, 9146, 111, 116, 59, 32768, 8787, 114, 114, 59, 32768, 10609, 768, 99, 100, 105, 9158, 9162, 9167, 114, 59, 32768, 8495, 111, 116, 59, 32768, 8784, 109, 59, 32768, 8770, 512, 97, 104, 9176, 9179, 59, 32768, 951, 33024, 240, 59, 32768, 240, 512, 109, 114, 9189, 9195, 108, 33024, 235, 59, 32768, 235, 111, 59, 32768, 8364, 768, 99, 105, 112, 9206, 9210, 9215, 108, 59, 32768, 33, 115, 116, 59, 32768, 8707, 512, 101, 111, 9220, 9230, 99, 116, 97, 116, 105, 111, 110, 59, 32768, 8496, 110, 101, 110, 116, 105, 97, 108, 101, 59, 32768, 8519, 4914, 9262, 0, 9276, 0, 9280, 9287, 0, 0, 9318, 9324, 0, 9331, 0, 9352, 9357, 9386, 0, 9395, 9497, 108, 108, 105, 110, 103, 100, 111, 116, 115, 101, 113, 59, 32768, 8786, 121, 59, 32768, 1092, 109, 97, 108, 101, 59, 32768, 9792, 768, 105, 108, 114, 9293, 9299, 9313, 108, 105, 103, 59, 32768, 64259, 1082, 9305, 0, 0, 9309, 103, 59, 32768, 64256, 105, 103, 59, 32768, 64260, 59, 32896, 55349, 56611, 108, 105, 103, 59, 32768, 64257, 108, 105, 103, 59, 32896, 102, 106, 768, 97, 108, 116, 9337, 9341, 9346, 116, 59, 32768, 9837, 105, 103, 59, 32768, 64258, 110, 115, 59, 32768, 9649, 111, 102, 59, 32768, 402, 833, 9361, 0, 9366, 102, 59, 32896, 55349, 56663, 512, 97, 107, 9370, 9375, 108, 108, 59, 32768, 8704, 512, 59, 118, 9380, 9382, 32768, 8916, 59, 32768, 10969, 97, 114, 116, 105, 110, 116, 59, 32768, 10765, 512, 97, 111, 9399, 9491, 512, 99, 115, 9404, 9487, 1794, 9413, 9443, 9453, 9470, 9474, 0, 9484, 1795, 9421, 9426, 9429, 9434, 9437, 0, 9440, 33024, 189, 59, 32768, 189, 59, 32768, 8531, 33024, 188, 59, 32768, 188, 59, 32768, 8533, 59, 32768, 8537, 59, 32768, 8539, 772, 9447, 0, 9450, 59, 32768, 8532, 59, 32768, 8534, 1285, 9459, 9464, 0, 0, 9467, 33024, 190, 59, 32768, 190, 59, 32768, 8535, 59, 32768, 8540, 53, 59, 32768, 8536, 775, 9478, 0, 9481, 59, 32768, 8538, 59, 32768, 8541, 56, 59, 32768, 8542, 108, 59, 32768, 8260, 119, 110, 59, 32768, 8994, 99, 114, 59, 32896, 55349, 56507, 4352, 69, 97, 98, 99, 100, 101, 102, 103, 105, 106, 108, 110, 111, 114, 115, 116, 118, 9537, 9547, 9575, 9582, 9595, 9600, 9679, 9684, 9694, 9700, 9705, 9725, 9773, 9779, 9785, 9810, 9917, 512, 59, 108, 9542, 9544, 32768, 8807, 59, 32768, 10892, 768, 99, 109, 112, 9554, 9560, 9572, 117, 116, 101, 59, 32768, 501, 109, 97, 512, 59, 100, 9567, 9569, 32768, 947, 59, 32768, 989, 59, 32768, 10886, 114, 101, 118, 101, 59, 32768, 287, 512, 105, 121, 9587, 9592, 114, 99, 59, 32768, 285, 59, 32768, 1075, 111, 116, 59, 32768, 289, 1024, 59, 108, 113, 115, 9609, 9611, 9614, 9633, 32768, 8805, 59, 32768, 8923, 768, 59, 113, 115, 9621, 9623, 9626, 32768, 8805, 59, 32768, 8807, 108, 97, 110, 116, 59, 32768, 10878, 1024, 59, 99, 100, 108, 9642, 9644, 9648, 9667, 32768, 10878, 99, 59, 32768, 10921, 111, 116, 512, 59, 111, 9655, 9657, 32768, 10880, 512, 59, 108, 9662, 9664, 32768, 10882, 59, 32768, 10884, 512, 59, 101, 9672, 9675, 32896, 8923, 65024, 115, 59, 32768, 10900, 114, 59, 32896, 55349, 56612, 512, 59, 103, 9689, 9691, 32768, 8811, 59, 32768, 8921, 109, 101, 108, 59, 32768, 8503, 99, 121, 59, 32768, 1107, 1024, 59, 69, 97, 106, 9714, 9716, 9719, 9722, 32768, 8823, 59, 32768, 10898, 59, 32768, 10917, 59, 32768, 10916, 1024, 69, 97, 101, 115, 9734, 9737, 9751, 9768, 59, 32768, 8809, 112, 512, 59, 112, 9743, 9745, 32768, 10890, 114, 111, 120, 59, 32768, 10890, 512, 59, 113, 9756, 9758, 32768, 10888, 512, 59, 113, 9763, 9765, 32768, 10888, 59, 32768, 8809, 105, 109, 59, 32768, 8935, 112, 102, 59, 32896, 55349, 56664, 97, 118, 101, 59, 32768, 96, 512, 99, 105, 9790, 9794, 114, 59, 32768, 8458, 109, 768, 59, 101, 108, 9802, 9804, 9807, 32768, 8819, 59, 32768, 10894, 59, 32768, 10896, 34304, 62, 59, 99, 100, 108, 113, 114, 9824, 9826, 9838, 9843, 9849, 9856, 32768, 62, 512, 99, 105, 9831, 9834, 59, 32768, 10919, 114, 59, 32768, 10874, 111, 116, 59, 32768, 8919, 80, 97, 114, 59, 32768, 10645, 117, 101, 115, 116, 59, 32768, 10876, 1280, 97, 100, 101, 108, 115, 9867, 9882, 9887, 9906, 9912, 833, 9872, 0, 9879, 112, 114, 111, 120, 59, 32768, 10886, 114, 59, 32768, 10616, 111, 116, 59, 32768, 8919, 113, 512, 108, 113, 9893, 9899, 101, 115, 115, 59, 32768, 8923, 108, 101, 115, 115, 59, 32768, 10892, 101, 115, 115, 59, 32768, 8823, 105, 109, 59, 32768, 8819, 512, 101, 110, 9922, 9932, 114, 116, 110, 101, 113, 113, 59, 32896, 8809, 65024, 69, 59, 32896, 8809, 65024, 2560, 65, 97, 98, 99, 101, 102, 107, 111, 115, 121, 9958, 9963, 10015, 10020, 10026, 10060, 10065, 10085, 10147, 10171, 114, 114, 59, 32768, 8660, 1024, 105, 108, 109, 114, 9972, 9978, 9982, 9988, 114, 115, 112, 59, 32768, 8202, 102, 59, 32768, 189, 105, 108, 116, 59, 32768, 8459, 512, 100, 114, 9993, 9998, 99, 121, 59, 32768, 1098, 768, 59, 99, 119, 10005, 10007, 10012, 32768, 8596, 105, 114, 59, 32768, 10568, 59, 32768, 8621, 97, 114, 59, 32768, 8463, 105, 114, 99, 59, 32768, 293, 768, 97, 108, 114, 10033, 10048, 10054, 114, 116, 115, 512, 59, 117, 10041, 10043, 32768, 9829, 105, 116, 59, 32768, 9829, 108, 105, 112, 59, 32768, 8230, 99, 111, 110, 59, 32768, 8889, 114, 59, 32896, 55349, 56613, 115, 512, 101, 119, 10071, 10078, 97, 114, 111, 119, 59, 32768, 10533, 97, 114, 111, 119, 59, 32768, 10534, 1280, 97, 109, 111, 112, 114, 10096, 10101, 10107, 10136, 10141, 114, 114, 59, 32768, 8703, 116, 104, 116, 59, 32768, 8763, 107, 512, 108, 114, 10113, 10124, 101, 102, 116, 97, 114, 114, 111, 119, 59, 32768, 8617, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 8618, 102, 59, 32896, 55349, 56665, 98, 97, 114, 59, 32768, 8213, 768, 99, 108, 116, 10154, 10159, 10165, 114, 59, 32896, 55349, 56509, 97, 115, 104, 59, 32768, 8463, 114, 111, 107, 59, 32768, 295, 512, 98, 112, 10176, 10182, 117, 108, 108, 59, 32768, 8259, 104, 101, 110, 59, 32768, 8208, 5426, 10211, 0, 10220, 0, 10239, 10255, 10267, 0, 10276, 10312, 0, 0, 10318, 10371, 10458, 10485, 10491, 0, 10500, 10545, 10558, 99, 117, 116, 101, 33024, 237, 59, 32768, 237, 768, 59, 105, 121, 10226, 10228, 10235, 32768, 8291, 114, 99, 33024, 238, 59, 32768, 238, 59, 32768, 1080, 512, 99, 120, 10243, 10247, 121, 59, 32768, 1077, 99, 108, 33024, 161, 59, 32768, 161, 512, 102, 114, 10259, 10262, 59, 32768, 8660, 59, 32896, 55349, 56614, 114, 97, 118, 101, 33024, 236, 59, 32768, 236, 1024, 59, 105, 110, 111, 10284, 10286, 10300, 10306, 32768, 8520, 512, 105, 110, 10291, 10296, 110, 116, 59, 32768, 10764, 116, 59, 32768, 8749, 102, 105, 110, 59, 32768, 10716, 116, 97, 59, 32768, 8489, 108, 105, 103, 59, 32768, 307, 768, 97, 111, 112, 10324, 10361, 10365, 768, 99, 103, 116, 10331, 10335, 10357, 114, 59, 32768, 299, 768, 101, 108, 112, 10342, 10345, 10351, 59, 32768, 8465, 105, 110, 101, 59, 32768, 8464, 97, 114, 116, 59, 32768, 8465, 104, 59, 32768, 305, 102, 59, 32768, 8887, 101, 100, 59, 32768, 437, 1280, 59, 99, 102, 111, 116, 10381, 10383, 10389, 10403, 10409, 32768, 8712, 97, 114, 101, 59, 32768, 8453, 105, 110, 512, 59, 116, 10396, 10398, 32768, 8734, 105, 101, 59, 32768, 10717, 100, 111, 116, 59, 32768, 305, 1280, 59, 99, 101, 108, 112, 10420, 10422, 10427, 10444, 10451, 32768, 8747, 97, 108, 59, 32768, 8890, 512, 103, 114, 10432, 10438, 101, 114, 115, 59, 32768, 8484, 99, 97, 108, 59, 32768, 8890, 97, 114, 104, 107, 59, 32768, 10775, 114, 111, 100, 59, 32768, 10812, 1024, 99, 103, 112, 116, 10466, 10470, 10475, 10480, 121, 59, 32768, 1105, 111, 110, 59, 32768, 303, 102, 59, 32896, 55349, 56666, 97, 59, 32768, 953, 114, 111, 100, 59, 32768, 10812, 117, 101, 115, 116, 33024, 191, 59, 32768, 191, 512, 99, 105, 10504, 10509, 114, 59, 32896, 55349, 56510, 110, 1280, 59, 69, 100, 115, 118, 10521, 10523, 10526, 10531, 10541, 32768, 8712, 59, 32768, 8953, 111, 116, 59, 32768, 8949, 512, 59, 118, 10536, 10538, 32768, 8948, 59, 32768, 8947, 59, 32768, 8712, 512, 59, 105, 10549, 10551, 32768, 8290, 108, 100, 101, 59, 32768, 297, 828, 10562, 0, 10567, 99, 121, 59, 32768, 1110, 108, 33024, 239, 59, 32768, 239, 1536, 99, 102, 109, 111, 115, 117, 10585, 10598, 10603, 10609, 10615, 10630, 512, 105, 121, 10590, 10595, 114, 99, 59, 32768, 309, 59, 32768, 1081, 114, 59, 32896, 55349, 56615, 97, 116, 104, 59, 32768, 567, 112, 102, 59, 32896, 55349, 56667, 820, 10620, 0, 10625, 114, 59, 32896, 55349, 56511, 114, 99, 121, 59, 32768, 1112, 107, 99, 121, 59, 32768, 1108, 2048, 97, 99, 102, 103, 104, 106, 111, 115, 10653, 10666, 10680, 10685, 10692, 10697, 10702, 10708, 112, 112, 97, 512, 59, 118, 10661, 10663, 32768, 954, 59, 32768, 1008, 512, 101, 121, 10671, 10677, 100, 105, 108, 59, 32768, 311, 59, 32768, 1082, 114, 59, 32896, 55349, 56616, 114, 101, 101, 110, 59, 32768, 312, 99, 121, 59, 32768, 1093, 99, 121, 59, 32768, 1116, 112, 102, 59, 32896, 55349, 56668, 99, 114, 59, 32896, 55349, 56512, 5888, 65, 66, 69, 72, 97, 98, 99, 100, 101, 102, 103, 104, 106, 108, 109, 110, 111, 112, 114, 115, 116, 117, 118, 10761, 10783, 10789, 10799, 10804, 10957, 11011, 11047, 11094, 11349, 11372, 11382, 11409, 11414, 11451, 11478, 11526, 11698, 11711, 11755, 11823, 11910, 11929, 768, 97, 114, 116, 10768, 10773, 10777, 114, 114, 59, 32768, 8666, 114, 59, 32768, 8656, 97, 105, 108, 59, 32768, 10523, 97, 114, 114, 59, 32768, 10510, 512, 59, 103, 10794, 10796, 32768, 8806, 59, 32768, 10891, 97, 114, 59, 32768, 10594, 4660, 10824, 0, 10830, 0, 10838, 0, 0, 0, 0, 0, 10844, 10850, 0, 10867, 10870, 10877, 0, 10933, 117, 116, 101, 59, 32768, 314, 109, 112, 116, 121, 118, 59, 32768, 10676, 114, 97, 110, 59, 32768, 8466, 98, 100, 97, 59, 32768, 955, 103, 768, 59, 100, 108, 10857, 10859, 10862, 32768, 10216, 59, 32768, 10641, 101, 59, 32768, 10216, 59, 32768, 10885, 117, 111, 33024, 171, 59, 32768, 171, 114, 2048, 59, 98, 102, 104, 108, 112, 115, 116, 10894, 10896, 10907, 10911, 10915, 10919, 10923, 10928, 32768, 8592, 512, 59, 102, 10901, 10903, 32768, 8676, 115, 59, 32768, 10527, 115, 59, 32768, 10525, 107, 59, 32768, 8617, 112, 59, 32768, 8619, 108, 59, 32768, 10553, 105, 109, 59, 32768, 10611, 108, 59, 32768, 8610, 768, 59, 97, 101, 10939, 10941, 10946, 32768, 10923, 105, 108, 59, 32768, 10521, 512, 59, 115, 10951, 10953, 32768, 10925, 59, 32896, 10925, 65024, 768, 97, 98, 114, 10964, 10969, 10974, 114, 114, 59, 32768, 10508, 114, 107, 59, 32768, 10098, 512, 97, 107, 10979, 10991, 99, 512, 101, 107, 10985, 10988, 59, 32768, 123, 59, 32768, 91, 512, 101, 115, 10996, 10999, 59, 32768, 10635, 108, 512, 100, 117, 11005, 11008, 59, 32768, 10639, 59, 32768, 10637, 1024, 97, 101, 117, 121, 11020, 11026, 11040, 11044, 114, 111, 110, 59, 32768, 318, 512, 100, 105, 11031, 11036, 105, 108, 59, 32768, 316, 108, 59, 32768, 8968, 98, 59, 32768, 123, 59, 32768, 1083, 1024, 99, 113, 114, 115, 11056, 11060, 11072, 11090, 97, 59, 32768, 10550, 117, 111, 512, 59, 114, 11067, 11069, 32768, 8220, 59, 32768, 8222, 512, 100, 117, 11077, 11083, 104, 97, 114, 59, 32768, 10599, 115, 104, 97, 114, 59, 32768, 10571, 104, 59, 32768, 8626, 1280, 59, 102, 103, 113, 115, 11105, 11107, 11228, 11231, 11250, 32768, 8804, 116, 1280, 97, 104, 108, 114, 116, 11119, 11136, 11157, 11169, 11216, 114, 114, 111, 119, 512, 59, 116, 11128, 11130, 32768, 8592, 97, 105, 108, 59, 32768, 8610, 97, 114, 112, 111, 111, 110, 512, 100, 117, 11147, 11153, 111, 119, 110, 59, 32768, 8637, 112, 59, 32768, 8636, 101, 102, 116, 97, 114, 114, 111, 119, 115, 59, 32768, 8647, 105, 103, 104, 116, 768, 97, 104, 115, 11180, 11194, 11204, 114, 114, 111, 119, 512, 59, 115, 11189, 11191, 32768, 8596, 59, 32768, 8646, 97, 114, 112, 111, 111, 110, 115, 59, 32768, 8651, 113, 117, 105, 103, 97, 114, 114, 111, 119, 59, 32768, 8621, 104, 114, 101, 101, 116, 105, 109, 101, 115, 59, 32768, 8907, 59, 32768, 8922, 768, 59, 113, 115, 11238, 11240, 11243, 32768, 8804, 59, 32768, 8806, 108, 97, 110, 116, 59, 32768, 10877, 1280, 59, 99, 100, 103, 115, 11261, 11263, 11267, 11286, 11298, 32768, 10877, 99, 59, 32768, 10920, 111, 116, 512, 59, 111, 11274, 11276, 32768, 10879, 512, 59, 114, 11281, 11283, 32768, 10881, 59, 32768, 10883, 512, 59, 101, 11291, 11294, 32896, 8922, 65024, 115, 59, 32768, 10899, 1280, 97, 100, 101, 103, 115, 11309, 11317, 11322, 11339, 11344, 112, 112, 114, 111, 120, 59, 32768, 10885, 111, 116, 59, 32768, 8918, 113, 512, 103, 113, 11328, 11333, 116, 114, 59, 32768, 8922, 103, 116, 114, 59, 32768, 10891, 116, 114, 59, 32768, 8822, 105, 109, 59, 32768, 8818, 768, 105, 108, 114, 11356, 11362, 11368, 115, 104, 116, 59, 32768, 10620, 111, 111, 114, 59, 32768, 8970, 59, 32896, 55349, 56617, 512, 59, 69, 11377, 11379, 32768, 8822, 59, 32768, 10897, 562, 11386, 11405, 114, 512, 100, 117, 11391, 11394, 59, 32768, 8637, 512, 59, 108, 11399, 11401, 32768, 8636, 59, 32768, 10602, 108, 107, 59, 32768, 9604, 99, 121, 59, 32768, 1113, 1280, 59, 97, 99, 104, 116, 11425, 11427, 11432, 11440, 11446, 32768, 8810, 114, 114, 59, 32768, 8647, 111, 114, 110, 101, 114, 59, 32768, 8990, 97, 114, 100, 59, 32768, 10603, 114, 105, 59, 32768, 9722, 512, 105, 111, 11456, 11462, 100, 111, 116, 59, 32768, 320, 117, 115, 116, 512, 59, 97, 11470, 11472, 32768, 9136, 99, 104, 101, 59, 32768, 9136, 1024, 69, 97, 101, 115, 11487, 11490, 11504, 11521, 59, 32768, 8808, 112, 512, 59, 112, 11496, 11498, 32768, 10889, 114, 111, 120, 59, 32768, 10889, 512, 59, 113, 11509, 11511, 32768, 10887, 512, 59, 113, 11516, 11518, 32768, 10887, 59, 32768, 8808, 105, 109, 59, 32768, 8934, 2048, 97, 98, 110, 111, 112, 116, 119, 122, 11543, 11556, 11561, 11616, 11640, 11660, 11667, 11680, 512, 110, 114, 11548, 11552, 103, 59, 32768, 10220, 114, 59, 32768, 8701, 114, 107, 59, 32768, 10214, 103, 768, 108, 109, 114, 11569, 11596, 11604, 101, 102, 116, 512, 97, 114, 11577, 11584, 114, 114, 111, 119, 59, 32768, 10229, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 10231, 97, 112, 115, 116, 111, 59, 32768, 10236, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 10230, 112, 97, 114, 114, 111, 119, 512, 108, 114, 11627, 11633, 101, 102, 116, 59, 32768, 8619, 105, 103, 104, 116, 59, 32768, 8620, 768, 97, 102, 108, 11647, 11651, 11655, 114, 59, 32768, 10629, 59, 32896, 55349, 56669, 117, 115, 59, 32768, 10797, 105, 109, 101, 115, 59, 32768, 10804, 562, 11671, 11676, 115, 116, 59, 32768, 8727, 97, 114, 59, 32768, 95, 768, 59, 101, 102, 11687, 11689, 11695, 32768, 9674, 110, 103, 101, 59, 32768, 9674, 59, 32768, 10731, 97, 114, 512, 59, 108, 11705, 11707, 32768, 40, 116, 59, 32768, 10643, 1280, 97, 99, 104, 109, 116, 11722, 11727, 11735, 11747, 11750, 114, 114, 59, 32768, 8646, 111, 114, 110, 101, 114, 59, 32768, 8991, 97, 114, 512, 59, 100, 11742, 11744, 32768, 8651, 59, 32768, 10605, 59, 32768, 8206, 114, 105, 59, 32768, 8895, 1536, 97, 99, 104, 105, 113, 116, 11768, 11774, 11779, 11782, 11798, 11817, 113, 117, 111, 59, 32768, 8249, 114, 59, 32896, 55349, 56513, 59, 32768, 8624, 109, 768, 59, 101, 103, 11790, 11792, 11795, 32768, 8818, 59, 32768, 10893, 59, 32768, 10895, 512, 98, 117, 11803, 11806, 59, 32768, 91, 111, 512, 59, 114, 11812, 11814, 32768, 8216, 59, 32768, 8218, 114, 111, 107, 59, 32768, 322, 34816, 60, 59, 99, 100, 104, 105, 108, 113, 114, 11841, 11843, 11855, 11860, 11866, 11872, 11878, 11885, 32768, 60, 512, 99, 105, 11848, 11851, 59, 32768, 10918, 114, 59, 32768, 10873, 111, 116, 59, 32768, 8918, 114, 101, 101, 59, 32768, 8907, 109, 101, 115, 59, 32768, 8905, 97, 114, 114, 59, 32768, 10614, 117, 101, 115, 116, 59, 32768, 10875, 512, 80, 105, 11890, 11895, 97, 114, 59, 32768, 10646, 768, 59, 101, 102, 11902, 11904, 11907, 32768, 9667, 59, 32768, 8884, 59, 32768, 9666, 114, 512, 100, 117, 11916, 11923, 115, 104, 97, 114, 59, 32768, 10570, 104, 97, 114, 59, 32768, 10598, 512, 101, 110, 11934, 11944, 114, 116, 110, 101, 113, 113, 59, 32896, 8808, 65024, 69, 59, 32896, 8808, 65024, 3584, 68, 97, 99, 100, 101, 102, 104, 105, 108, 110, 111, 112, 115, 117, 11978, 11984, 12061, 12075, 12081, 12095, 12100, 12104, 12170, 12181, 12188, 12204, 12207, 12223, 68, 111, 116, 59, 32768, 8762, 1024, 99, 108, 112, 114, 11993, 11999, 12019, 12055, 114, 33024, 175, 59, 32768, 175, 512, 101, 116, 12004, 12007, 59, 32768, 9794, 512, 59, 101, 12012, 12014, 32768, 10016, 115, 101, 59, 32768, 10016, 512, 59, 115, 12024, 12026, 32768, 8614, 116, 111, 1024, 59, 100, 108, 117, 12037, 12039, 12045, 12051, 32768, 8614, 111, 119, 110, 59, 32768, 8615, 101, 102, 116, 59, 32768, 8612, 112, 59, 32768, 8613, 107, 101, 114, 59, 32768, 9646, 512, 111, 121, 12066, 12072, 109, 109, 97, 59, 32768, 10793, 59, 32768, 1084, 97, 115, 104, 59, 32768, 8212, 97, 115, 117, 114, 101, 100, 97, 110, 103, 108, 101, 59, 32768, 8737, 114, 59, 32896, 55349, 56618, 111, 59, 32768, 8487, 768, 99, 100, 110, 12111, 12118, 12146, 114, 111, 33024, 181, 59, 32768, 181, 1024, 59, 97, 99, 100, 12127, 12129, 12134, 12139, 32768, 8739, 115, 116, 59, 32768, 42, 105, 114, 59, 32768, 10992, 111, 116, 33024, 183, 59, 32768, 183, 117, 115, 768, 59, 98, 100, 12155, 12157, 12160, 32768, 8722, 59, 32768, 8863, 512, 59, 117, 12165, 12167, 32768, 8760, 59, 32768, 10794, 564, 12174, 12178, 112, 59, 32768, 10971, 114, 59, 32768, 8230, 112, 108, 117, 115, 59, 32768, 8723, 512, 100, 112, 12193, 12199, 101, 108, 115, 59, 32768, 8871, 102, 59, 32896, 55349, 56670, 59, 32768, 8723, 512, 99, 116, 12212, 12217, 114, 59, 32896, 55349, 56514, 112, 111, 115, 59, 32768, 8766, 768, 59, 108, 109, 12230, 12232, 12240, 32768, 956, 116, 105, 109, 97, 112, 59, 32768, 8888, 97, 112, 59, 32768, 8888, 6144, 71, 76, 82, 86, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 108, 109, 111, 112, 114, 115, 116, 117, 118, 119, 12294, 12315, 12364, 12376, 12393, 12472, 12496, 12547, 12553, 12636, 12641, 12703, 12725, 12747, 12752, 12876, 12881, 12957, 13033, 13089, 13294, 13359, 13384, 13499, 512, 103, 116, 12299, 12303, 59, 32896, 8921, 824, 512, 59, 118, 12308, 12311, 32896, 8811, 8402, 59, 32896, 8811, 824, 768, 101, 108, 116, 12322, 12348, 12352, 102, 116, 512, 97, 114, 12329, 12336, 114, 114, 111, 119, 59, 32768, 8653, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 8654, 59, 32896, 8920, 824, 512, 59, 118, 12357, 12360, 32896, 8810, 8402, 59, 32896, 8810, 824, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 8655, 512, 68, 100, 12381, 12387, 97, 115, 104, 59, 32768, 8879, 97, 115, 104, 59, 32768, 8878, 1280, 98, 99, 110, 112, 116, 12404, 12409, 12415, 12420, 12452, 108, 97, 59, 32768, 8711, 117, 116, 101, 59, 32768, 324, 103, 59, 32896, 8736, 8402, 1280, 59, 69, 105, 111, 112, 12431, 12433, 12437, 12442, 12446, 32768, 8777, 59, 32896, 10864, 824, 100, 59, 32896, 8779, 824, 115, 59, 32768, 329, 114, 111, 120, 59, 32768, 8777, 117, 114, 512, 59, 97, 12459, 12461, 32768, 9838, 108, 512, 59, 115, 12467, 12469, 32768, 9838, 59, 32768, 8469, 836, 12477, 0, 12483, 112, 33024, 160, 59, 32768, 160, 109, 112, 512, 59, 101, 12489, 12492, 32896, 8782, 824, 59, 32896, 8783, 824, 1280, 97, 101, 111, 117, 121, 12507, 12519, 12525, 12540, 12544, 833, 12512, 0, 12515, 59, 32768, 10819, 111, 110, 59, 32768, 328, 100, 105, 108, 59, 32768, 326, 110, 103, 512, 59, 100, 12532, 12534, 32768, 8775, 111, 116, 59, 32896, 10861, 824, 112, 59, 32768, 10818, 59, 32768, 1085, 97, 115, 104, 59, 32768, 8211, 1792, 59, 65, 97, 100, 113, 115, 120, 12568, 12570, 12575, 12596, 12602, 12608, 12623, 32768, 8800, 114, 114, 59, 32768, 8663, 114, 512, 104, 114, 12581, 12585, 107, 59, 32768, 10532, 512, 59, 111, 12590, 12592, 32768, 8599, 119, 59, 32768, 8599, 111, 116, 59, 32896, 8784, 824, 117, 105, 118, 59, 32768, 8802, 512, 101, 105, 12613, 12618, 97, 114, 59, 32768, 10536, 109, 59, 32896, 8770, 824, 105, 115, 116, 512, 59, 115, 12631, 12633, 32768, 8708, 59, 32768, 8708, 114, 59, 32896, 55349, 56619, 1024, 69, 101, 115, 116, 12650, 12654, 12688, 12693, 59, 32896, 8807, 824, 768, 59, 113, 115, 12661, 12663, 12684, 32768, 8817, 768, 59, 113, 115, 12670, 12672, 12676, 32768, 8817, 59, 32896, 8807, 824, 108, 97, 110, 116, 59, 32896, 10878, 824, 59, 32896, 10878, 824, 105, 109, 59, 32768, 8821, 512, 59, 114, 12698, 12700, 32768, 8815, 59, 32768, 8815, 768, 65, 97, 112, 12710, 12715, 12720, 114, 114, 59, 32768, 8654, 114, 114, 59, 32768, 8622, 97, 114, 59, 32768, 10994, 768, 59, 115, 118, 12732, 12734, 12744, 32768, 8715, 512, 59, 100, 12739, 12741, 32768, 8956, 59, 32768, 8954, 59, 32768, 8715, 99, 121, 59, 32768, 1114, 1792, 65, 69, 97, 100, 101, 115, 116, 12767, 12772, 12776, 12781, 12785, 12853, 12858, 114, 114, 59, 32768, 8653, 59, 32896, 8806, 824, 114, 114, 59, 32768, 8602, 114, 59, 32768, 8229, 1024, 59, 102, 113, 115, 12794, 12796, 12821, 12842, 32768, 8816, 116, 512, 97, 114, 12802, 12809, 114, 114, 111, 119, 59, 32768, 8602, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 8622, 768, 59, 113, 115, 12828, 12830, 12834, 32768, 8816, 59, 32896, 8806, 824, 108, 97, 110, 116, 59, 32896, 10877, 824, 512, 59, 115, 12847, 12850, 32896, 10877, 824, 59, 32768, 8814, 105, 109, 59, 32768, 8820, 512, 59, 114, 12863, 12865, 32768, 8814, 105, 512, 59, 101, 12871, 12873, 32768, 8938, 59, 32768, 8940, 105, 100, 59, 32768, 8740, 512, 112, 116, 12886, 12891, 102, 59, 32896, 55349, 56671, 33536, 172, 59, 105, 110, 12899, 12901, 12936, 32768, 172, 110, 1024, 59, 69, 100, 118, 12911, 12913, 12917, 12923, 32768, 8713, 59, 32896, 8953, 824, 111, 116, 59, 32896, 8949, 824, 818, 12928, 12931, 12934, 59, 32768, 8713, 59, 32768, 8951, 59, 32768, 8950, 105, 512, 59, 118, 12942, 12944, 32768, 8716, 818, 12949, 12952, 12955, 59, 32768, 8716, 59, 32768, 8958, 59, 32768, 8957, 768, 97, 111, 114, 12964, 12992, 12999, 114, 1024, 59, 97, 115, 116, 12974, 12976, 12983, 12988, 32768, 8742, 108, 108, 101, 108, 59, 32768, 8742, 108, 59, 32896, 11005, 8421, 59, 32896, 8706, 824, 108, 105, 110, 116, 59, 32768, 10772, 768, 59, 99, 101, 13006, 13008, 13013, 32768, 8832, 117, 101, 59, 32768, 8928, 512, 59, 99, 13018, 13021, 32896, 10927, 824, 512, 59, 101, 13026, 13028, 32768, 8832, 113, 59, 32896, 10927, 824, 1024, 65, 97, 105, 116, 13042, 13047, 13066, 13077, 114, 114, 59, 32768, 8655, 114, 114, 768, 59, 99, 119, 13056, 13058, 13062, 32768, 8603, 59, 32896, 10547, 824, 59, 32896, 8605, 824, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 8603, 114, 105, 512, 59, 101, 13084, 13086, 32768, 8939, 59, 32768, 8941, 1792, 99, 104, 105, 109, 112, 113, 117, 13104, 13128, 13151, 13169, 13174, 13179, 13194, 1024, 59, 99, 101, 114, 13113, 13115, 13120, 13124, 32768, 8833, 117, 101, 59, 32768, 8929, 59, 32896, 10928, 824, 59, 32896, 55349, 56515, 111, 114, 116, 1086, 13137, 0, 0, 13142, 105, 100, 59, 32768, 8740, 97, 114, 97, 108, 108, 101, 108, 59, 32768, 8742, 109, 512, 59, 101, 13157, 13159, 32768, 8769, 512, 59, 113, 13164, 13166, 32768, 8772, 59, 32768, 8772, 105, 100, 59, 32768, 8740, 97, 114, 59, 32768, 8742, 115, 117, 512, 98, 112, 13186, 13190, 101, 59, 32768, 8930, 101, 59, 32768, 8931, 768, 98, 99, 112, 13201, 13241, 13254, 1024, 59, 69, 101, 115, 13210, 13212, 13216, 13219, 32768, 8836, 59, 32896, 10949, 824, 59, 32768, 8840, 101, 116, 512, 59, 101, 13226, 13229, 32896, 8834, 8402, 113, 512, 59, 113, 13235, 13237, 32768, 8840, 59, 32896, 10949, 824, 99, 512, 59, 101, 13247, 13249, 32768, 8833, 113, 59, 32896, 10928, 824, 1024, 59, 69, 101, 115, 13263, 13265, 13269, 13272, 32768, 8837, 59, 32896, 10950, 824, 59, 32768, 8841, 101, 116, 512, 59, 101, 13279, 13282, 32896, 8835, 8402, 113, 512, 59, 113, 13288, 13290, 32768, 8841, 59, 32896, 10950, 824, 1024, 103, 105, 108, 114, 13303, 13307, 13315, 13319, 108, 59, 32768, 8825, 108, 100, 101, 33024, 241, 59, 32768, 241, 103, 59, 32768, 8824, 105, 97, 110, 103, 108, 101, 512, 108, 114, 13330, 13344, 101, 102, 116, 512, 59, 101, 13338, 13340, 32768, 8938, 113, 59, 32768, 8940, 105, 103, 104, 116, 512, 59, 101, 13353, 13355, 32768, 8939, 113, 59, 32768, 8941, 512, 59, 109, 13364, 13366, 32768, 957, 768, 59, 101, 115, 13373, 13375, 13380, 32768, 35, 114, 111, 59, 32768, 8470, 112, 59, 32768, 8199, 2304, 68, 72, 97, 100, 103, 105, 108, 114, 115, 13403, 13409, 13415, 13420, 13426, 13439, 13446, 13476, 13493, 97, 115, 104, 59, 32768, 8877, 97, 114, 114, 59, 32768, 10500, 112, 59, 32896, 8781, 8402, 97, 115, 104, 59, 32768, 8876, 512, 101, 116, 13431, 13435, 59, 32896, 8805, 8402, 59, 32896, 62, 8402, 110, 102, 105, 110, 59, 32768, 10718, 768, 65, 101, 116, 13453, 13458, 13462, 114, 114, 59, 32768, 10498, 59, 32896, 8804, 8402, 512, 59, 114, 13467, 13470, 32896, 60, 8402, 105, 101, 59, 32896, 8884, 8402, 512, 65, 116, 13481, 13486, 114, 114, 59, 32768, 10499, 114, 105, 101, 59, 32896, 8885, 8402, 105, 109, 59, 32896, 8764, 8402, 768, 65, 97, 110, 13506, 13511, 13532, 114, 114, 59, 32768, 8662, 114, 512, 104, 114, 13517, 13521, 107, 59, 32768, 10531, 512, 59, 111, 13526, 13528, 32768, 8598, 119, 59, 32768, 8598, 101, 97, 114, 59, 32768, 10535, 9252, 13576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13579, 0, 13596, 13617, 13653, 13659, 13673, 13695, 13708, 0, 0, 13713, 13750, 0, 13788, 13794, 0, 13815, 13890, 13913, 13937, 13944, 59, 32768, 9416, 512, 99, 115, 13583, 13591, 117, 116, 101, 33024, 243, 59, 32768, 243, 116, 59, 32768, 8859, 512, 105, 121, 13600, 13613, 114, 512, 59, 99, 13606, 13608, 32768, 8858, 33024, 244, 59, 32768, 244, 59, 32768, 1086, 1280, 97, 98, 105, 111, 115, 13627, 13632, 13638, 13642, 13646, 115, 104, 59, 32768, 8861, 108, 97, 99, 59, 32768, 337, 118, 59, 32768, 10808, 116, 59, 32768, 8857, 111, 108, 100, 59, 32768, 10684, 108, 105, 103, 59, 32768, 339, 512, 99, 114, 13663, 13668, 105, 114, 59, 32768, 10687, 59, 32896, 55349, 56620, 1600, 13680, 0, 0, 13684, 0, 13692, 110, 59, 32768, 731, 97, 118, 101, 33024, 242, 59, 32768, 242, 59, 32768, 10689, 512, 98, 109, 13699, 13704, 97, 114, 59, 32768, 10677, 59, 32768, 937, 110, 116, 59, 32768, 8750, 1024, 97, 99, 105, 116, 13721, 13726, 13741, 13746, 114, 114, 59, 32768, 8634, 512, 105, 114, 13731, 13735, 114, 59, 32768, 10686, 111, 115, 115, 59, 32768, 10683, 110, 101, 59, 32768, 8254, 59, 32768, 10688, 768, 97, 101, 105, 13756, 13761, 13766, 99, 114, 59, 32768, 333, 103, 97, 59, 32768, 969, 768, 99, 100, 110, 13773, 13779, 13782, 114, 111, 110, 59, 32768, 959, 59, 32768, 10678, 117, 115, 59, 32768, 8854, 112, 102, 59, 32896, 55349, 56672, 768, 97, 101, 108, 13800, 13804, 13809, 114, 59, 32768, 10679, 114, 112, 59, 32768, 10681, 117, 115, 59, 32768, 8853, 1792, 59, 97, 100, 105, 111, 115, 118, 13829, 13831, 13836, 13869, 13875, 13879, 13886, 32768, 8744, 114, 114, 59, 32768, 8635, 1024, 59, 101, 102, 109, 13845, 13847, 13859, 13864, 32768, 10845, 114, 512, 59, 111, 13853, 13855, 32768, 8500, 102, 59, 32768, 8500, 33024, 170, 59, 32768, 170, 33024, 186, 59, 32768, 186, 103, 111, 102, 59, 32768, 8886, 114, 59, 32768, 10838, 108, 111, 112, 101, 59, 32768, 10839, 59, 32768, 10843, 768, 99, 108, 111, 13896, 13900, 13908, 114, 59, 32768, 8500, 97, 115, 104, 33024, 248, 59, 32768, 248, 108, 59, 32768, 8856, 105, 573, 13917, 13924, 100, 101, 33024, 245, 59, 32768, 245, 101, 115, 512, 59, 97, 13930, 13932, 32768, 8855, 115, 59, 32768, 10806, 109, 108, 33024, 246, 59, 32768, 246, 98, 97, 114, 59, 32768, 9021, 5426, 13972, 0, 14013, 0, 14017, 14053, 0, 14058, 14086, 0, 0, 14107, 14199, 0, 14202, 0, 0, 14229, 14425, 0, 14438, 114, 1024, 59, 97, 115, 116, 13981, 13983, 13997, 14009, 32768, 8741, 33280, 182, 59, 108, 13989, 13991, 32768, 182, 108, 101, 108, 59, 32768, 8741, 1082, 14003, 0, 0, 14007, 109, 59, 32768, 10995, 59, 32768, 11005, 59, 32768, 8706, 121, 59, 32768, 1087, 114, 1280, 99, 105, 109, 112, 116, 14028, 14033, 14038, 14043, 14046, 110, 116, 59, 32768, 37, 111, 100, 59, 32768, 46, 105, 108, 59, 32768, 8240, 59, 32768, 8869, 101, 110, 107, 59, 32768, 8241, 114, 59, 32896, 55349, 56621, 768, 105, 109, 111, 14064, 14074, 14080, 512, 59, 118, 14069, 14071, 32768, 966, 59, 32768, 981, 109, 97, 116, 59, 32768, 8499, 110, 101, 59, 32768, 9742, 768, 59, 116, 118, 14092, 14094, 14103, 32768, 960, 99, 104, 102, 111, 114, 107, 59, 32768, 8916, 59, 32768, 982, 512, 97, 117, 14111, 14132, 110, 512, 99, 107, 14117, 14128, 107, 512, 59, 104, 14123, 14125, 32768, 8463, 59, 32768, 8462, 118, 59, 32768, 8463, 115, 2304, 59, 97, 98, 99, 100, 101, 109, 115, 116, 14152, 14154, 14160, 14163, 14168, 14179, 14182, 14188, 14193, 32768, 43, 99, 105, 114, 59, 32768, 10787, 59, 32768, 8862, 105, 114, 59, 32768, 10786, 512, 111, 117, 14173, 14176, 59, 32768, 8724, 59, 32768, 10789, 59, 32768, 10866, 110, 33024, 177, 59, 32768, 177, 105, 109, 59, 32768, 10790, 119, 111, 59, 32768, 10791, 59, 32768, 177, 768, 105, 112, 117, 14208, 14216, 14221, 110, 116, 105, 110, 116, 59, 32768, 10773, 102, 59, 32896, 55349, 56673, 110, 100, 33024, 163, 59, 32768, 163, 2560, 59, 69, 97, 99, 101, 105, 110, 111, 115, 117, 14249, 14251, 14254, 14258, 14263, 14336, 14348, 14367, 14413, 14418, 32768, 8826, 59, 32768, 10931, 112, 59, 32768, 10935, 117, 101, 59, 32768, 8828, 512, 59, 99, 14268, 14270, 32768, 10927, 1536, 59, 97, 99, 101, 110, 115, 14283, 14285, 14293, 14302, 14306, 14331, 32768, 8826, 112, 112, 114, 111, 120, 59, 32768, 10935, 117, 114, 108, 121, 101, 113, 59, 32768, 8828, 113, 59, 32768, 10927, 768, 97, 101, 115, 14313, 14321, 14326, 112, 112, 114, 111, 120, 59, 32768, 10937, 113, 113, 59, 32768, 10933, 105, 109, 59, 32768, 8936, 105, 109, 59, 32768, 8830, 109, 101, 512, 59, 115, 14343, 14345, 32768, 8242, 59, 32768, 8473, 768, 69, 97, 115, 14355, 14358, 14362, 59, 32768, 10933, 112, 59, 32768, 10937, 105, 109, 59, 32768, 8936, 768, 100, 102, 112, 14374, 14377, 14402, 59, 32768, 8719, 768, 97, 108, 115, 14384, 14390, 14396, 108, 97, 114, 59, 32768, 9006, 105, 110, 101, 59, 32768, 8978, 117, 114, 102, 59, 32768, 8979, 512, 59, 116, 14407, 14409, 32768, 8733, 111, 59, 32768, 8733, 105, 109, 59, 32768, 8830, 114, 101, 108, 59, 32768, 8880, 512, 99, 105, 14429, 14434, 114, 59, 32896, 55349, 56517, 59, 32768, 968, 110, 99, 115, 112, 59, 32768, 8200, 1536, 102, 105, 111, 112, 115, 117, 14457, 14462, 14467, 14473, 14480, 14486, 114, 59, 32896, 55349, 56622, 110, 116, 59, 32768, 10764, 112, 102, 59, 32896, 55349, 56674, 114, 105, 109, 101, 59, 32768, 8279, 99, 114, 59, 32896, 55349, 56518, 768, 97, 101, 111, 14493, 14513, 14526, 116, 512, 101, 105, 14499, 14508, 114, 110, 105, 111, 110, 115, 59, 32768, 8461, 110, 116, 59, 32768, 10774, 115, 116, 512, 59, 101, 14520, 14522, 32768, 63, 113, 59, 32768, 8799, 116, 33024, 34, 59, 32768, 34, 5376, 65, 66, 72, 97, 98, 99, 100, 101, 102, 104, 105, 108, 109, 110, 111, 112, 114, 115, 116, 117, 120, 14575, 14597, 14603, 14608, 14775, 14829, 14865, 14901, 14943, 14966, 15000, 15139, 15159, 15176, 15182, 15236, 15261, 15267, 15309, 15352, 15360, 768, 97, 114, 116, 14582, 14587, 14591, 114, 114, 59, 32768, 8667, 114, 59, 32768, 8658, 97, 105, 108, 59, 32768, 10524, 97, 114, 114, 59, 32768, 10511, 97, 114, 59, 32768, 10596, 1792, 99, 100, 101, 110, 113, 114, 116, 14623, 14637, 14642, 14650, 14672, 14679, 14751, 512, 101, 117, 14628, 14632, 59, 32896, 8765, 817, 116, 101, 59, 32768, 341, 105, 99, 59, 32768, 8730, 109, 112, 116, 121, 118, 59, 32768, 10675, 103, 1024, 59, 100, 101, 108, 14660, 14662, 14665, 14668, 32768, 10217, 59, 32768, 10642, 59, 32768, 10661, 101, 59, 32768, 10217, 117, 111, 33024, 187, 59, 32768, 187, 114, 2816, 59, 97, 98, 99, 102, 104, 108, 112, 115, 116, 119, 14703, 14705, 14709, 14720, 14723, 14727, 14731, 14735, 14739, 14744, 14748, 32768, 8594, 112, 59, 32768, 10613, 512, 59, 102, 14714, 14716, 32768, 8677, 115, 59, 32768, 10528, 59, 32768, 10547, 115, 59, 32768, 10526, 107, 59, 32768, 8618, 112, 59, 32768, 8620, 108, 59, 32768, 10565, 105, 109, 59, 32768, 10612, 108, 59, 32768, 8611, 59, 32768, 8605, 512, 97, 105, 14756, 14761, 105, 108, 59, 32768, 10522, 111, 512, 59, 110, 14767, 14769, 32768, 8758, 97, 108, 115, 59, 32768, 8474, 768, 97, 98, 114, 14782, 14787, 14792, 114, 114, 59, 32768, 10509, 114, 107, 59, 32768, 10099, 512, 97, 107, 14797, 14809, 99, 512, 101, 107, 14803, 14806, 59, 32768, 125, 59, 32768, 93, 512, 101, 115, 14814, 14817, 59, 32768, 10636, 108, 512, 100, 117, 14823, 14826, 59, 32768, 10638, 59, 32768, 10640, 1024, 97, 101, 117, 121, 14838, 14844, 14858, 14862, 114, 111, 110, 59, 32768, 345, 512, 100, 105, 14849, 14854, 105, 108, 59, 32768, 343, 108, 59, 32768, 8969, 98, 59, 32768, 125, 59, 32768, 1088, 1024, 99, 108, 113, 115, 14874, 14878, 14885, 14897, 97, 59, 32768, 10551, 100, 104, 97, 114, 59, 32768, 10601, 117, 111, 512, 59, 114, 14892, 14894, 32768, 8221, 59, 32768, 8221, 104, 59, 32768, 8627, 768, 97, 99, 103, 14908, 14934, 14938, 108, 1024, 59, 105, 112, 115, 14918, 14920, 14925, 14931, 32768, 8476, 110, 101, 59, 32768, 8475, 97, 114, 116, 59, 32768, 8476, 59, 32768, 8477, 116, 59, 32768, 9645, 33024, 174, 59, 32768, 174, 768, 105, 108, 114, 14950, 14956, 14962, 115, 104, 116, 59, 32768, 10621, 111, 111, 114, 59, 32768, 8971, 59, 32896, 55349, 56623, 512, 97, 111, 14971, 14990, 114, 512, 100, 117, 14977, 14980, 59, 32768, 8641, 512, 59, 108, 14985, 14987, 32768, 8640, 59, 32768, 10604, 512, 59, 118, 14995, 14997, 32768, 961, 59, 32768, 1009, 768, 103, 110, 115, 15007, 15123, 15127, 104, 116, 1536, 97, 104, 108, 114, 115, 116, 15022, 15039, 15060, 15086, 15099, 15111, 114, 114, 111, 119, 512, 59, 116, 15031, 15033, 32768, 8594, 97, 105, 108, 59, 32768, 8611, 97, 114, 112, 111, 111, 110, 512, 100, 117, 15050, 15056, 111, 119, 110, 59, 32768, 8641, 112, 59, 32768, 8640, 101, 102, 116, 512, 97, 104, 15068, 15076, 114, 114, 111, 119, 115, 59, 32768, 8644, 97, 114, 112, 111, 111, 110, 115, 59, 32768, 8652, 105, 103, 104, 116, 97, 114, 114, 111, 119, 115, 59, 32768, 8649, 113, 117, 105, 103, 97, 114, 114, 111, 119, 59, 32768, 8605, 104, 114, 101, 101, 116, 105, 109, 101, 115, 59, 32768, 8908, 103, 59, 32768, 730, 105, 110, 103, 100, 111, 116, 115, 101, 113, 59, 32768, 8787, 768, 97, 104, 109, 15146, 15151, 15156, 114, 114, 59, 32768, 8644, 97, 114, 59, 32768, 8652, 59, 32768, 8207, 111, 117, 115, 116, 512, 59, 97, 15168, 15170, 32768, 9137, 99, 104, 101, 59, 32768, 9137, 109, 105, 100, 59, 32768, 10990, 1024, 97, 98, 112, 116, 15191, 15204, 15209, 15229, 512, 110, 114, 15196, 15200, 103, 59, 32768, 10221, 114, 59, 32768, 8702, 114, 107, 59, 32768, 10215, 768, 97, 102, 108, 15216, 15220, 15224, 114, 59, 32768, 10630, 59, 32896, 55349, 56675, 117, 115, 59, 32768, 10798, 105, 109, 101, 115, 59, 32768, 10805, 512, 97, 112, 15241, 15253, 114, 512, 59, 103, 15247, 15249, 32768, 41, 116, 59, 32768, 10644, 111, 108, 105, 110, 116, 59, 32768, 10770, 97, 114, 114, 59, 32768, 8649, 1024, 97, 99, 104, 113, 15276, 15282, 15287, 15290, 113, 117, 111, 59, 32768, 8250, 114, 59, 32896, 55349, 56519, 59, 32768, 8625, 512, 98, 117, 15295, 15298, 59, 32768, 93, 111, 512, 59, 114, 15304, 15306, 32768, 8217, 59, 32768, 8217, 768, 104, 105, 114, 15316, 15322, 15328, 114, 101, 101, 59, 32768, 8908, 109, 101, 115, 59, 32768, 8906, 105, 1024, 59, 101, 102, 108, 15338, 15340, 15343, 15346, 32768, 9657, 59, 32768, 8885, 59, 32768, 9656, 116, 114, 105, 59, 32768, 10702, 108, 117, 104, 97, 114, 59, 32768, 10600, 59, 32768, 8478, 6706, 15391, 15398, 15404, 15499, 15516, 15592, 0, 15606, 15660, 0, 0, 15752, 15758, 0, 15827, 15863, 15886, 16000, 16006, 16038, 16086, 0, 16467, 0, 0, 16506, 99, 117, 116, 101, 59, 32768, 347, 113, 117, 111, 59, 32768, 8218, 2560, 59, 69, 97, 99, 101, 105, 110, 112, 115, 121, 15424, 15426, 15429, 15441, 15446, 15458, 15463, 15482, 15490, 15495, 32768, 8827, 59, 32768, 10932, 833, 15434, 0, 15437, 59, 32768, 10936, 111, 110, 59, 32768, 353, 117, 101, 59, 32768, 8829, 512, 59, 100, 15451, 15453, 32768, 10928, 105, 108, 59, 32768, 351, 114, 99, 59, 32768, 349, 768, 69, 97, 115, 15470, 15473, 15477, 59, 32768, 10934, 112, 59, 32768, 10938, 105, 109, 59, 32768, 8937, 111, 108, 105, 110, 116, 59, 32768, 10771, 105, 109, 59, 32768, 8831, 59, 32768, 1089, 111, 116, 768, 59, 98, 101, 15507, 15509, 15512, 32768, 8901, 59, 32768, 8865, 59, 32768, 10854, 1792, 65, 97, 99, 109, 115, 116, 120, 15530, 15535, 15556, 15562, 15566, 15572, 15587, 114, 114, 59, 32768, 8664, 114, 512, 104, 114, 15541, 15545, 107, 59, 32768, 10533, 512, 59, 111, 15550, 15552, 32768, 8600, 119, 59, 32768, 8600, 116, 33024, 167, 59, 32768, 167, 105, 59, 32768, 59, 119, 97, 114, 59, 32768, 10537, 109, 512, 105, 110, 15578, 15584, 110, 117, 115, 59, 32768, 8726, 59, 32768, 8726, 116, 59, 32768, 10038, 114, 512, 59, 111, 15597, 15600, 32896, 55349, 56624, 119, 110, 59, 32768, 8994, 1024, 97, 99, 111, 121, 15614, 15619, 15632, 15654, 114, 112, 59, 32768, 9839, 512, 104, 121, 15624, 15629, 99, 121, 59, 32768, 1097, 59, 32768, 1096, 114, 116, 1086, 15640, 0, 0, 15645, 105, 100, 59, 32768, 8739, 97, 114, 97, 108, 108, 101, 108, 59, 32768, 8741, 33024, 173, 59, 32768, 173, 512, 103, 109, 15664, 15681, 109, 97, 768, 59, 102, 118, 15673, 15675, 15678, 32768, 963, 59, 32768, 962, 59, 32768, 962, 2048, 59, 100, 101, 103, 108, 110, 112, 114, 15698, 15700, 15705, 15715, 15725, 15735, 15739, 15745, 32768, 8764, 111, 116, 59, 32768, 10858, 512, 59, 113, 15710, 15712, 32768, 8771, 59, 32768, 8771, 512, 59, 69, 15720, 15722, 32768, 10910, 59, 32768, 10912, 512, 59, 69, 15730, 15732, 32768, 10909, 59, 32768, 10911, 101, 59, 32768, 8774, 108, 117, 115, 59, 32768, 10788, 97, 114, 114, 59, 32768, 10610, 97, 114, 114, 59, 32768, 8592, 1024, 97, 101, 105, 116, 15766, 15788, 15796, 15808, 512, 108, 115, 15771, 15783, 108, 115, 101, 116, 109, 105, 110, 117, 115, 59, 32768, 8726, 104, 112, 59, 32768, 10803, 112, 97, 114, 115, 108, 59, 32768, 10724, 512, 100, 108, 15801, 15804, 59, 32768, 8739, 101, 59, 32768, 8995, 512, 59, 101, 15813, 15815, 32768, 10922, 512, 59, 115, 15820, 15822, 32768, 10924, 59, 32896, 10924, 65024, 768, 102, 108, 112, 15833, 15839, 15857, 116, 99, 121, 59, 32768, 1100, 512, 59, 98, 15844, 15846, 32768, 47, 512, 59, 97, 15851, 15853, 32768, 10692, 114, 59, 32768, 9023, 102, 59, 32896, 55349, 56676, 97, 512, 100, 114, 15868, 15882, 101, 115, 512, 59, 117, 15875, 15877, 32768, 9824, 105, 116, 59, 32768, 9824, 59, 32768, 8741, 768, 99, 115, 117, 15892, 15921, 15977, 512, 97, 117, 15897, 15909, 112, 512, 59, 115, 15903, 15905, 32768, 8851, 59, 32896, 8851, 65024, 112, 512, 59, 115, 15915, 15917, 32768, 8852, 59, 32896, 8852, 65024, 117, 512, 98, 112, 15927, 15952, 768, 59, 101, 115, 15934, 15936, 15939, 32768, 8847, 59, 32768, 8849, 101, 116, 512, 59, 101, 15946, 15948, 32768, 8847, 113, 59, 32768, 8849, 768, 59, 101, 115, 15959, 15961, 15964, 32768, 8848, 59, 32768, 8850, 101, 116, 512, 59, 101, 15971, 15973, 32768, 8848, 113, 59, 32768, 8850, 768, 59, 97, 102, 15984, 15986, 15996, 32768, 9633, 114, 566, 15991, 15994, 59, 32768, 9633, 59, 32768, 9642, 59, 32768, 9642, 97, 114, 114, 59, 32768, 8594, 1024, 99, 101, 109, 116, 16014, 16019, 16025, 16031, 114, 59, 32896, 55349, 56520, 116, 109, 110, 59, 32768, 8726, 105, 108, 101, 59, 32768, 8995, 97, 114, 102, 59, 32768, 8902, 512, 97, 114, 16042, 16053, 114, 512, 59, 102, 16048, 16050, 32768, 9734, 59, 32768, 9733, 512, 97, 110, 16058, 16081, 105, 103, 104, 116, 512, 101, 112, 16067, 16076, 112, 115, 105, 108, 111, 110, 59, 32768, 1013, 104, 105, 59, 32768, 981, 115, 59, 32768, 175, 1280, 98, 99, 109, 110, 112, 16096, 16221, 16288, 16291, 16295, 2304, 59, 69, 100, 101, 109, 110, 112, 114, 115, 16115, 16117, 16120, 16125, 16137, 16143, 16154, 16160, 16166, 32768, 8834, 59, 32768, 10949, 111, 116, 59, 32768, 10941, 512, 59, 100, 16130, 16132, 32768, 8838, 111, 116, 59, 32768, 10947, 117, 108, 116, 59, 32768, 10945, 512, 69, 101, 16148, 16151, 59, 32768, 10955, 59, 32768, 8842, 108, 117, 115, 59, 32768, 10943, 97, 114, 114, 59, 32768, 10617, 768, 101, 105, 117, 16173, 16206, 16210, 116, 768, 59, 101, 110, 16181, 16183, 16194, 32768, 8834, 113, 512, 59, 113, 16189, 16191, 32768, 8838, 59, 32768, 10949, 101, 113, 512, 59, 113, 16201, 16203, 32768, 8842, 59, 32768, 10955, 109, 59, 32768, 10951, 512, 98, 112, 16215, 16218, 59, 32768, 10965, 59, 32768, 10963, 99, 1536, 59, 97, 99, 101, 110, 115, 16235, 16237, 16245, 16254, 16258, 16283, 32768, 8827, 112, 112, 114, 111, 120, 59, 32768, 10936, 117, 114, 108, 121, 101, 113, 59, 32768, 8829, 113, 59, 32768, 10928, 768, 97, 101, 115, 16265, 16273, 16278, 112, 112, 114, 111, 120, 59, 32768, 10938, 113, 113, 59, 32768, 10934, 105, 109, 59, 32768, 8937, 105, 109, 59, 32768, 8831, 59, 32768, 8721, 103, 59, 32768, 9834, 3328, 49, 50, 51, 59, 69, 100, 101, 104, 108, 109, 110, 112, 115, 16322, 16327, 16332, 16337, 16339, 16342, 16356, 16368, 16382, 16388, 16394, 16405, 16411, 33024, 185, 59, 32768, 185, 33024, 178, 59, 32768, 178, 33024, 179, 59, 32768, 179, 32768, 8835, 59, 32768, 10950, 512, 111, 115, 16347, 16351, 116, 59, 32768, 10942, 117, 98, 59, 32768, 10968, 512, 59, 100, 16361, 16363, 32768, 8839, 111, 116, 59, 32768, 10948, 115, 512, 111, 117, 16374, 16378, 108, 59, 32768, 10185, 98, 59, 32768, 10967, 97, 114, 114, 59, 32768, 10619, 117, 108, 116, 59, 32768, 10946, 512, 69, 101, 16399, 16402, 59, 32768, 10956, 59, 32768, 8843, 108, 117, 115, 59, 32768, 10944, 768, 101, 105, 117, 16418, 16451, 16455, 116, 768, 59, 101, 110, 16426, 16428, 16439, 32768, 8835, 113, 512, 59, 113, 16434, 16436, 32768, 8839, 59, 32768, 10950, 101, 113, 512, 59, 113, 16446, 16448, 32768, 8843, 59, 32768, 10956, 109, 59, 32768, 10952, 512, 98, 112, 16460, 16463, 59, 32768, 10964, 59, 32768, 10966, 768, 65, 97, 110, 16473, 16478, 16499, 114, 114, 59, 32768, 8665, 114, 512, 104, 114, 16484, 16488, 107, 59, 32768, 10534, 512, 59, 111, 16493, 16495, 32768, 8601, 119, 59, 32768, 8601, 119, 97, 114, 59, 32768, 10538, 108, 105, 103, 33024, 223, 59, 32768, 223, 5938, 16538, 16552, 16557, 16579, 16584, 16591, 0, 16596, 16692, 0, 0, 0, 0, 0, 16731, 16780, 0, 16787, 16908, 0, 0, 0, 16938, 1091, 16543, 0, 0, 16549, 103, 101, 116, 59, 32768, 8982, 59, 32768, 964, 114, 107, 59, 32768, 9140, 768, 97, 101, 121, 16563, 16569, 16575, 114, 111, 110, 59, 32768, 357, 100, 105, 108, 59, 32768, 355, 59, 32768, 1090, 111, 116, 59, 32768, 8411, 108, 114, 101, 99, 59, 32768, 8981, 114, 59, 32896, 55349, 56625, 1024, 101, 105, 107, 111, 16604, 16641, 16670, 16684, 835, 16609, 0, 16624, 101, 512, 52, 102, 16614, 16617, 59, 32768, 8756, 111, 114, 101, 59, 32768, 8756, 97, 768, 59, 115, 118, 16631, 16633, 16638, 32768, 952, 121, 109, 59, 32768, 977, 59, 32768, 977, 512, 99, 110, 16646, 16665, 107, 512, 97, 115, 16652, 16660, 112, 112, 114, 111, 120, 59, 32768, 8776, 105, 109, 59, 32768, 8764, 115, 112, 59, 32768, 8201, 512, 97, 115, 16675, 16679, 112, 59, 32768, 8776, 105, 109, 59, 32768, 8764, 114, 110, 33024, 254, 59, 32768, 254, 829, 16696, 16701, 16727, 100, 101, 59, 32768, 732, 101, 115, 33536, 215, 59, 98, 100, 16710, 16712, 16723, 32768, 215, 512, 59, 97, 16717, 16719, 32768, 8864, 114, 59, 32768, 10801, 59, 32768, 10800, 116, 59, 32768, 8749, 768, 101, 112, 115, 16737, 16741, 16775, 97, 59, 32768, 10536, 1024, 59, 98, 99, 102, 16750, 16752, 16757, 16762, 32768, 8868, 111, 116, 59, 32768, 9014, 105, 114, 59, 32768, 10993, 512, 59, 111, 16767, 16770, 32896, 55349, 56677, 114, 107, 59, 32768, 10970, 97, 59, 32768, 10537, 114, 105, 109, 101, 59, 32768, 8244, 768, 97, 105, 112, 16793, 16798, 16899, 100, 101, 59, 32768, 8482, 1792, 97, 100, 101, 109, 112, 115, 116, 16813, 16868, 16873, 16876, 16883, 16889, 16893, 110, 103, 108, 101, 1280, 59, 100, 108, 113, 114, 16828, 16830, 16836, 16850, 16853, 32768, 9653, 111, 119, 110, 59, 32768, 9663, 101, 102, 116, 512, 59, 101, 16844, 16846, 32768, 9667, 113, 59, 32768, 8884, 59, 32768, 8796, 105, 103, 104, 116, 512, 59, 101, 16862, 16864, 32768, 9657, 113, 59, 32768, 8885, 111, 116, 59, 32768, 9708, 59, 32768, 8796, 105, 110, 117, 115, 59, 32768, 10810, 108, 117, 115, 59, 32768, 10809, 98, 59, 32768, 10701, 105, 109, 101, 59, 32768, 10811, 101, 122, 105, 117, 109, 59, 32768, 9186, 768, 99, 104, 116, 16914, 16926, 16931, 512, 114, 121, 16919, 16923, 59, 32896, 55349, 56521, 59, 32768, 1094, 99, 121, 59, 32768, 1115, 114, 111, 107, 59, 32768, 359, 512, 105, 111, 16942, 16947, 120, 116, 59, 32768, 8812, 104, 101, 97, 100, 512, 108, 114, 16956, 16967, 101, 102, 116, 97, 114, 114, 111, 119, 59, 32768, 8606, 105, 103, 104, 116, 97, 114, 114, 111, 119, 59, 32768, 8608, 4608, 65, 72, 97, 98, 99, 100, 102, 103, 104, 108, 109, 111, 112, 114, 115, 116, 117, 119, 17016, 17021, 17026, 17043, 17057, 17072, 17095, 17110, 17119, 17139, 17172, 17187, 17202, 17290, 17330, 17336, 17365, 17381, 114, 114, 59, 32768, 8657, 97, 114, 59, 32768, 10595, 512, 99, 114, 17031, 17039, 117, 116, 101, 33024, 250, 59, 32768, 250, 114, 59, 32768, 8593, 114, 820, 17049, 0, 17053, 121, 59, 32768, 1118, 118, 101, 59, 32768, 365, 512, 105, 121, 17062, 17069, 114, 99, 33024, 251, 59, 32768, 251, 59, 32768, 1091, 768, 97, 98, 104, 17079, 17084, 17090, 114, 114, 59, 32768, 8645, 108, 97, 99, 59, 32768, 369, 97, 114, 59, 32768, 10606, 512, 105, 114, 17100, 17106, 115, 104, 116, 59, 32768, 10622, 59, 32896, 55349, 56626, 114, 97, 118, 101, 33024, 249, 59, 32768, 249, 562, 17123, 17135, 114, 512, 108, 114, 17128, 17131, 59, 32768, 8639, 59, 32768, 8638, 108, 107, 59, 32768, 9600, 512, 99, 116, 17144, 17167, 1088, 17150, 0, 0, 17163, 114, 110, 512, 59, 101, 17156, 17158, 32768, 8988, 114, 59, 32768, 8988, 111, 112, 59, 32768, 8975, 114, 105, 59, 32768, 9720, 512, 97, 108, 17177, 17182, 99, 114, 59, 32768, 363, 33024, 168, 59, 32768, 168, 512, 103, 112, 17192, 17197, 111, 110, 59, 32768, 371, 102, 59, 32896, 55349, 56678, 1536, 97, 100, 104, 108, 115, 117, 17215, 17222, 17233, 17257, 17262, 17280, 114, 114, 111, 119, 59, 32768, 8593, 111, 119, 110, 97, 114, 114, 111, 119, 59, 32768, 8597, 97, 114, 112, 111, 111, 110, 512, 108, 114, 17244, 17250, 101, 102, 116, 59, 32768, 8639, 105, 103, 104, 116, 59, 32768, 8638, 117, 115, 59, 32768, 8846, 105, 768, 59, 104, 108, 17270, 17272, 17275, 32768, 965, 59, 32768, 978, 111, 110, 59, 32768, 965, 112, 97, 114, 114, 111, 119, 115, 59, 32768, 8648, 768, 99, 105, 116, 17297, 17320, 17325, 1088, 17303, 0, 0, 17316, 114, 110, 512, 59, 101, 17309, 17311, 32768, 8989, 114, 59, 32768, 8989, 111, 112, 59, 32768, 8974, 110, 103, 59, 32768, 367, 114, 105, 59, 32768, 9721, 99, 114, 59, 32896, 55349, 56522, 768, 100, 105, 114, 17343, 17348, 17354, 111, 116, 59, 32768, 8944, 108, 100, 101, 59, 32768, 361, 105, 512, 59, 102, 17360, 17362, 32768, 9653, 59, 32768, 9652, 512, 97, 109, 17370, 17375, 114, 114, 59, 32768, 8648, 108, 33024, 252, 59, 32768, 252, 97, 110, 103, 108, 101, 59, 32768, 10663, 3840, 65, 66, 68, 97, 99, 100, 101, 102, 108, 110, 111, 112, 114, 115, 122, 17420, 17425, 17437, 17443, 17613, 17617, 17623, 17667, 17672, 17678, 17693, 17699, 17705, 17711, 17754, 114, 114, 59, 32768, 8661, 97, 114, 512, 59, 118, 17432, 17434, 32768, 10984, 59, 32768, 10985, 97, 115, 104, 59, 32768, 8872, 512, 110, 114, 17448, 17454, 103, 114, 116, 59, 32768, 10652, 1792, 101, 107, 110, 112, 114, 115, 116, 17469, 17478, 17485, 17494, 17515, 17526, 17578, 112, 115, 105, 108, 111, 110, 59, 32768, 1013, 97, 112, 112, 97, 59, 32768, 1008, 111, 116, 104, 105, 110, 103, 59, 32768, 8709, 768, 104, 105, 114, 17501, 17505, 17508, 105, 59, 32768, 981, 59, 32768, 982, 111, 112, 116, 111, 59, 32768, 8733, 512, 59, 104, 17520, 17522, 32768, 8597, 111, 59, 32768, 1009, 512, 105, 117, 17531, 17537, 103, 109, 97, 59, 32768, 962, 512, 98, 112, 17542, 17560, 115, 101, 116, 110, 101, 113, 512, 59, 113, 17553, 17556, 32896, 8842, 65024, 59, 32896, 10955, 65024, 115, 101, 116, 110, 101, 113, 512, 59, 113, 17571, 17574, 32896, 8843, 65024, 59, 32896, 10956, 65024, 512, 104, 114, 17583, 17589, 101, 116, 97, 59, 32768, 977, 105, 97, 110, 103, 108, 101, 512, 108, 114, 17600, 17606, 101, 102, 116, 59, 32768, 8882, 105, 103, 104, 116, 59, 32768, 8883, 121, 59, 32768, 1074, 97, 115, 104, 59, 32768, 8866, 768, 101, 108, 114, 17630, 17648, 17654, 768, 59, 98, 101, 17637, 17639, 17644, 32768, 8744, 97, 114, 59, 32768, 8891, 113, 59, 32768, 8794, 108, 105, 112, 59, 32768, 8942, 512, 98, 116, 17659, 17664, 97, 114, 59, 32768, 124, 59, 32768, 124, 114, 59, 32896, 55349, 56627, 116, 114, 105, 59, 32768, 8882, 115, 117, 512, 98, 112, 17685, 17689, 59, 32896, 8834, 8402, 59, 32896, 8835, 8402, 112, 102, 59, 32896, 55349, 56679, 114, 111, 112, 59, 32768, 8733, 116, 114, 105, 59, 32768, 8883, 512, 99, 117, 17716, 17721, 114, 59, 32896, 55349, 56523, 512, 98, 112, 17726, 17740, 110, 512, 69, 101, 17732, 17736, 59, 32896, 10955, 65024, 59, 32896, 8842, 65024, 110, 512, 69, 101, 17746, 17750, 59, 32896, 10956, 65024, 59, 32896, 8843, 65024, 105, 103, 122, 97, 103, 59, 32768, 10650, 1792, 99, 101, 102, 111, 112, 114, 115, 17777, 17783, 17815, 17820, 17826, 17829, 17842, 105, 114, 99, 59, 32768, 373, 512, 100, 105, 17788, 17809, 512, 98, 103, 17793, 17798, 97, 114, 59, 32768, 10847, 101, 512, 59, 113, 17804, 17806, 32768, 8743, 59, 32768, 8793, 101, 114, 112, 59, 32768, 8472, 114, 59, 32896, 55349, 56628, 112, 102, 59, 32896, 55349, 56680, 59, 32768, 8472, 512, 59, 101, 17834, 17836, 32768, 8768, 97, 116, 104, 59, 32768, 8768, 99, 114, 59, 32896, 55349, 56524, 5428, 17871, 17891, 0, 17897, 0, 17902, 17917, 0, 0, 17920, 17935, 17940, 17945, 0, 0, 17977, 17992, 0, 18008, 18024, 18029, 768, 97, 105, 117, 17877, 17881, 17886, 112, 59, 32768, 8898, 114, 99, 59, 32768, 9711, 112, 59, 32768, 8899, 116, 114, 105, 59, 32768, 9661, 114, 59, 32896, 55349, 56629, 512, 65, 97, 17906, 17911, 114, 114, 59, 32768, 10234, 114, 114, 59, 32768, 10231, 59, 32768, 958, 512, 65, 97, 17924, 17929, 114, 114, 59, 32768, 10232, 114, 114, 59, 32768, 10229, 97, 112, 59, 32768, 10236, 105, 115, 59, 32768, 8955, 768, 100, 112, 116, 17951, 17956, 17970, 111, 116, 59, 32768, 10752, 512, 102, 108, 17961, 17965, 59, 32896, 55349, 56681, 117, 115, 59, 32768, 10753, 105, 109, 101, 59, 32768, 10754, 512, 65, 97, 17981, 17986, 114, 114, 59, 32768, 10233, 114, 114, 59, 32768, 10230, 512, 99, 113, 17996, 18001, 114, 59, 32896, 55349, 56525, 99, 117, 112, 59, 32768, 10758, 512, 112, 116, 18012, 18018, 108, 117, 115, 59, 32768, 10756, 114, 105, 59, 32768, 9651, 101, 101, 59, 32768, 8897, 101, 100, 103, 101, 59, 32768, 8896, 2048, 97, 99, 101, 102, 105, 111, 115, 117, 18052, 18068, 18081, 18087, 18092, 18097, 18103, 18109, 99, 512, 117, 121, 18058, 18065, 116, 101, 33024, 253, 59, 32768, 253, 59, 32768, 1103, 512, 105, 121, 18073, 18078, 114, 99, 59, 32768, 375, 59, 32768, 1099, 110, 33024, 165, 59, 32768, 165, 114, 59, 32896, 55349, 56630, 99, 121, 59, 32768, 1111, 112, 102, 59, 32896, 55349, 56682, 99, 114, 59, 32896, 55349, 56526, 512, 99, 109, 18114, 18118, 121, 59, 32768, 1102, 108, 33024, 255, 59, 32768, 255, 2560, 97, 99, 100, 101, 102, 104, 105, 111, 115, 119, 18145, 18152, 18166, 18171, 18186, 18191, 18196, 18204, 18210, 18216, 99, 117, 116, 101, 59, 32768, 378, 512, 97, 121, 18157, 18163, 114, 111, 110, 59, 32768, 382, 59, 32768, 1079, 111, 116, 59, 32768, 380, 512, 101, 116, 18176, 18182, 116, 114, 102, 59, 32768, 8488, 97, 59, 32768, 950, 114, 59, 32896, 55349, 56631, 99, 121, 59, 32768, 1078, 103, 114, 97, 114, 114, 59, 32768, 8669, 112, 102, 59, 32896, 55349, 56683, 99, 114, 59, 32896, 55349, 56527, 512, 106, 110, 18221, 18224, 59, 32768, 8205, 106, 59, 32768, 8204]);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// Generated using scripts/write-decode-map.ts\n// prettier-ignore\nexports.default = new Uint16Array([1024, 97, 103, 108, 113, 9, 23, 27, 31, 1086, 15, 0, 0, 19, 112, 59, 32768, 38, 111, 115, 59, 32768, 39, 116, 59, 32768, 62, 116, 59, 32768, 60, 117, 111, 116, 59, 32768, 34]);\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_1 = require(\"./foreignNames\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n if (!attributes)\n return;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return key + \"=\\\"\" + (opts.decodeEntities !== false\n ? entities_1.encodeXML(value)\n : value.replace(/\"/g, \""\")) + \"\\\"\";\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n case ElementType.Directive:\n case ElementType.Doctype:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\" + elem.name;\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \" + attribs;\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"\";\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\" + elem.data + \">\";\n}\nfunction renderText(elem, opts) {\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (opts.decodeEntities !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data = entities_1.encodeXML(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"\";\n}\nfunction renderComment(elem) {\n return \"\";\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.decodeXMLStrict = exports.decodeHTML5Strict = exports.decodeHTML4Strict = exports.decodeHTML5 = exports.decodeHTML4 = exports.decodeHTMLStrict = exports.decodeHTML = exports.decodeXML = exports.encodeHTML5 = exports.encodeHTML4 = exports.escapeUTF8 = exports.escape = exports.encodeNonAsciiHTML = exports.encodeHTML = exports.encodeXML = exports.encode = exports.decodeStrict = exports.decode = void 0;\nvar decode_1 = require(\"./decode\");\nvar encode_1 = require(\"./encode\");\n/**\n * Decodes a string with entities.\n *\n * @param data String to decode.\n * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.\n * @deprecated Use `decodeXML` or `decodeHTML` directly.\n */\nfunction decode(data, level) {\n return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTML)(data);\n}\nexports.decode = decode;\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param data String to decode.\n * @param level Optional level to decode at. 0 = XML, 1 = HTML. Default is 0.\n * @deprecated Use `decodeHTMLStrict` or `decodeXML` directly.\n */\nfunction decodeStrict(data, level) {\n return (!level || level <= 0 ? decode_1.decodeXML : decode_1.decodeHTMLStrict)(data);\n}\nexports.decodeStrict = decodeStrict;\n/**\n * Encodes a string with entities.\n *\n * @param data String to encode.\n * @param level Optional level to encode at. 0 = XML, 1 = HTML. Default is 0.\n * @deprecated Use `encodeHTML`, `encodeXML` or `encodeNonAsciiHTML` directly.\n */\nfunction encode(data, level) {\n return (!level || level <= 0 ? encode_1.encodeXML : encode_1.encodeHTML)(data);\n}\nexports.encode = encode;\nvar encode_2 = require(\"./encode\");\nObject.defineProperty(exports, \"encodeXML\", { enumerable: true, get: function () { return encode_2.encodeXML; } });\nObject.defineProperty(exports, \"encodeHTML\", { enumerable: true, get: function () { return encode_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeNonAsciiHTML\", { enumerable: true, get: function () { return encode_2.encodeNonAsciiHTML; } });\nObject.defineProperty(exports, \"escape\", { enumerable: true, get: function () { return encode_2.escape; } });\nObject.defineProperty(exports, \"escapeUTF8\", { enumerable: true, get: function () { return encode_2.escapeUTF8; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"encodeHTML4\", { enumerable: true, get: function () { return encode_2.encodeHTML; } });\nObject.defineProperty(exports, \"encodeHTML5\", { enumerable: true, get: function () { return encode_2.encodeHTML; } });\nvar decode_2 = require(\"./decode\");\nObject.defineProperty(exports, \"decodeXML\", { enumerable: true, get: function () { return decode_2.decodeXML; } });\nObject.defineProperty(exports, \"decodeHTML\", { enumerable: true, get: function () { return decode_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTMLStrict\", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });\n// Legacy aliases (deprecated)\nObject.defineProperty(exports, \"decodeHTML4\", { enumerable: true, get: function () { return decode_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML5\", { enumerable: true, get: function () { return decode_2.decodeHTML; } });\nObject.defineProperty(exports, \"decodeHTML4Strict\", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeHTML5Strict\", { enumerable: true, get: function () { return decode_2.decodeHTMLStrict; } });\nObject.defineProperty(exports, \"decodeXMLStrict\", { enumerable: true, get: function () { return decode_2.decodeXML; } });\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar decode_json_1 = __importDefault(require(\"./maps/decode.json\"));\n// Adapted from https://github.com/mathiasbynens/he/blob/master/src/he.js#L94-L119\nvar fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.fromCodePoint ||\n function (codePoint) {\n var output = \"\";\n if (codePoint > 0xffff) {\n codePoint -= 0x10000;\n output += String.fromCharCode(((codePoint >>> 10) & 0x3ff) | 0xd800);\n codePoint = 0xdc00 | (codePoint & 0x3ff);\n }\n output += String.fromCharCode(codePoint);\n return output;\n };\nfunction decodeCodePoint(codePoint) {\n if ((codePoint >= 0xd800 && codePoint <= 0xdfff) || codePoint > 0x10ffff) {\n return \"\\uFFFD\";\n }\n if (codePoint in decode_json_1.default) {\n codePoint = decode_json_1.default[codePoint];\n }\n return fromCodePoint(codePoint);\n}\nexports.default = decodeCodePoint;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n [\"altglyph\", \"altGlyph\"],\n [\"altglyphdef\", \"altGlyphDef\"],\n [\"altglyphitem\", \"altGlyphItem\"],\n [\"animatecolor\", \"animateColor\"],\n [\"animatemotion\", \"animateMotion\"],\n [\"animatetransform\", \"animateTransform\"],\n [\"clippath\", \"clipPath\"],\n [\"feblend\", \"feBlend\"],\n [\"fecolormatrix\", \"feColorMatrix\"],\n [\"fecomponenttransfer\", \"feComponentTransfer\"],\n [\"fecomposite\", \"feComposite\"],\n [\"feconvolvematrix\", \"feConvolveMatrix\"],\n [\"fediffuselighting\", \"feDiffuseLighting\"],\n [\"fedisplacementmap\", \"feDisplacementMap\"],\n [\"fedistantlight\", \"feDistantLight\"],\n [\"fedropshadow\", \"feDropShadow\"],\n [\"feflood\", \"feFlood\"],\n [\"fefunca\", \"feFuncA\"],\n [\"fefuncb\", \"feFuncB\"],\n [\"fefuncg\", \"feFuncG\"],\n [\"fefuncr\", \"feFuncR\"],\n [\"fegaussianblur\", \"feGaussianBlur\"],\n [\"feimage\", \"feImage\"],\n [\"femerge\", \"feMerge\"],\n [\"femergenode\", \"feMergeNode\"],\n [\"femorphology\", \"feMorphology\"],\n [\"feoffset\", \"feOffset\"],\n [\"fepointlight\", \"fePointLight\"],\n [\"fespecularlighting\", \"feSpecularLighting\"],\n [\"fespotlight\", \"feSpotLight\"],\n [\"fetile\", \"feTile\"],\n [\"feturbulence\", \"feTurbulence\"],\n [\"foreignobject\", \"foreignObject\"],\n [\"glyphref\", \"glyphRef\"],\n [\"lineargradient\", \"linearGradient\"],\n [\"radialgradient\", \"radialGradient\"],\n [\"textpath\", \"textPath\"],\n]);\nexports.attributeNames = new Map([\n [\"definitionurl\", \"definitionURL\"],\n [\"attributename\", \"attributeName\"],\n [\"attributetype\", \"attributeType\"],\n [\"basefrequency\", \"baseFrequency\"],\n [\"baseprofile\", \"baseProfile\"],\n [\"calcmode\", \"calcMode\"],\n [\"clippathunits\", \"clipPathUnits\"],\n [\"diffuseconstant\", \"diffuseConstant\"],\n [\"edgemode\", \"edgeMode\"],\n [\"filterunits\", \"filterUnits\"],\n [\"glyphref\", \"glyphRef\"],\n [\"gradienttransform\", \"gradientTransform\"],\n [\"gradientunits\", \"gradientUnits\"],\n [\"kernelmatrix\", \"kernelMatrix\"],\n [\"kernelunitlength\", \"kernelUnitLength\"],\n [\"keypoints\", \"keyPoints\"],\n [\"keysplines\", \"keySplines\"],\n [\"keytimes\", \"keyTimes\"],\n [\"lengthadjust\", \"lengthAdjust\"],\n [\"limitingconeangle\", \"limitingConeAngle\"],\n [\"markerheight\", \"markerHeight\"],\n [\"markerunits\", \"markerUnits\"],\n [\"markerwidth\", \"markerWidth\"],\n [\"maskcontentunits\", \"maskContentUnits\"],\n [\"maskunits\", \"maskUnits\"],\n [\"numoctaves\", \"numOctaves\"],\n [\"pathlength\", \"pathLength\"],\n [\"patterncontentunits\", \"patternContentUnits\"],\n [\"patterntransform\", \"patternTransform\"],\n [\"patternunits\", \"patternUnits\"],\n [\"pointsatx\", \"pointsAtX\"],\n [\"pointsaty\", \"pointsAtY\"],\n [\"pointsatz\", \"pointsAtZ\"],\n [\"preservealpha\", \"preserveAlpha\"],\n [\"preserveaspectratio\", \"preserveAspectRatio\"],\n [\"primitiveunits\", \"primitiveUnits\"],\n [\"refx\", \"refX\"],\n [\"refy\", \"refY\"],\n [\"repeatcount\", \"repeatCount\"],\n [\"repeatdur\", \"repeatDur\"],\n [\"requiredextensions\", \"requiredExtensions\"],\n [\"requiredfeatures\", \"requiredFeatures\"],\n [\"specularconstant\", \"specularConstant\"],\n [\"specularexponent\", \"specularExponent\"],\n [\"spreadmethod\", \"spreadMethod\"],\n [\"startoffset\", \"startOffset\"],\n [\"stddeviation\", \"stdDeviation\"],\n [\"stitchtiles\", \"stitchTiles\"],\n [\"surfacescale\", \"surfaceScale\"],\n [\"systemlanguage\", \"systemLanguage\"],\n [\"tablevalues\", \"tableValues\"],\n [\"targetx\", \"targetX\"],\n [\"targety\", \"targetY\"],\n [\"textlength\", \"textLength\"],\n [\"viewbox\", \"viewBox\"],\n [\"viewtarget\", \"viewTarget\"],\n [\"xchannelselector\", \"xChannelSelector\"],\n [\"ychannelselector\", \"yChannelSelector\"],\n [\"zoomandpan\", \"zoomAndPan\"],\n]);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prevElementSibling = exports.nextElementSibling = exports.getName = exports.hasAttrib = exports.getAttributeValue = exports.getSiblings = exports.getParent = exports.getChildren = void 0;\nvar domhandler_1 = require(\"domhandler\");\nvar emptyArray = [];\n/**\n * Get a node's children.\n *\n * @param elem Node to get the children of.\n * @returns `elem`'s children, or an empty array.\n */\nfunction getChildren(elem) {\n var _a;\n return (_a = elem.children) !== null && _a !== void 0 ? _a : emptyArray;\n}\nexports.getChildren = getChildren;\n/**\n * Get a node's parent.\n *\n * @param elem Node to get the parent of.\n * @returns `elem`'s parent node.\n */\nfunction getParent(elem) {\n return elem.parent || null;\n}\nexports.getParent = getParent;\n/**\n * Gets an elements siblings, including the element itself.\n *\n * Attempts to get the children through the element's parent first.\n * If we don't have a parent (the element is a root node),\n * we walk the element's `prev` & `next` to get all remaining nodes.\n *\n * @param elem Element to get the siblings of.\n * @returns `elem`'s siblings.\n */\nfunction getSiblings(elem) {\n var _a, _b;\n var parent = getParent(elem);\n if (parent != null)\n return getChildren(parent);\n var siblings = [elem];\n var prev = elem.prev, next = elem.next;\n while (prev != null) {\n siblings.unshift(prev);\n (_a = prev, prev = _a.prev);\n }\n while (next != null) {\n siblings.push(next);\n (_b = next, next = _b.next);\n }\n return siblings;\n}\nexports.getSiblings = getSiblings;\n/**\n * Gets an attribute from an element.\n *\n * @param elem Element to check.\n * @param name Attribute name to retrieve.\n * @returns The element's attribute value, or `undefined`.\n */\nfunction getAttributeValue(elem, name) {\n var _a;\n return (_a = elem.attribs) === null || _a === void 0 ? void 0 : _a[name];\n}\nexports.getAttributeValue = getAttributeValue;\n/**\n * Checks whether an element has an attribute.\n *\n * @param elem Element to check.\n * @param name Attribute name to look for.\n * @returns Returns whether `elem` has the attribute `name`.\n */\nfunction hasAttrib(elem, name) {\n return (elem.attribs != null &&\n Object.prototype.hasOwnProperty.call(elem.attribs, name) &&\n elem.attribs[name] != null);\n}\nexports.hasAttrib = hasAttrib;\n/**\n * Get the tag name of an element.\n *\n * @param elem The element to get the name for.\n * @returns The tag name of `elem`.\n */\nfunction getName(elem) {\n return elem.name;\n}\nexports.getName = getName;\n/**\n * Returns the next element sibling of a node.\n *\n * @param elem The element to get the next sibling of.\n * @returns `elem`'s next sibling that is a tag.\n */\nfunction nextElementSibling(elem) {\n var _a;\n var next = elem.next;\n while (next !== null && !(0, domhandler_1.isTag)(next))\n (_a = next, next = _a.next);\n return next;\n}\nexports.nextElementSibling = nextElementSibling;\n/**\n * Returns the previous element sibling of a node.\n *\n * @param elem The element to get the previous sibling of.\n * @returns `elem`'s previous sibling that is a tag.\n */\nfunction prevElementSibling(elem) {\n var _a;\n var prev = elem.prev;\n while (prev !== null && !(0, domhandler_1.isTag)(prev))\n (_a = prev, prev = _a.prev);\n return prev;\n}\nexports.prevElementSibling = prevElementSibling;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.prepend = exports.prependChild = exports.append = exports.appendChild = exports.replaceElement = exports.removeElement = void 0;\n/**\n * Remove an element from the dom\n *\n * @param elem The element to be removed\n */\nfunction removeElement(elem) {\n if (elem.prev)\n elem.prev.next = elem.next;\n if (elem.next)\n elem.next.prev = elem.prev;\n if (elem.parent) {\n var childs = elem.parent.children;\n childs.splice(childs.lastIndexOf(elem), 1);\n }\n}\nexports.removeElement = removeElement;\n/**\n * Replace an element in the dom\n *\n * @param elem The element to be replaced\n * @param replacement The element to be added\n */\nfunction replaceElement(elem, replacement) {\n var prev = (replacement.prev = elem.prev);\n if (prev) {\n prev.next = replacement;\n }\n var next = (replacement.next = elem.next);\n if (next) {\n next.prev = replacement;\n }\n var parent = (replacement.parent = elem.parent);\n if (parent) {\n var childs = parent.children;\n childs[childs.lastIndexOf(elem)] = replacement;\n }\n}\nexports.replaceElement = replaceElement;\n/**\n * Append a child to an element.\n *\n * @param elem The element to append to.\n * @param child The element to be added as a child.\n */\nfunction appendChild(elem, child) {\n removeElement(child);\n child.next = null;\n child.parent = elem;\n if (elem.children.push(child) > 1) {\n var sibling = elem.children[elem.children.length - 2];\n sibling.next = child;\n child.prev = sibling;\n }\n else {\n child.prev = null;\n }\n}\nexports.appendChild = appendChild;\n/**\n * Append an element after another.\n *\n * @param elem The element to append after.\n * @param next The element be added.\n */\nfunction append(elem, next) {\n removeElement(next);\n var parent = elem.parent;\n var currNext = elem.next;\n next.next = currNext;\n next.prev = elem;\n elem.next = next;\n next.parent = parent;\n if (currNext) {\n currNext.prev = next;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.lastIndexOf(currNext), 0, next);\n }\n }\n else if (parent) {\n parent.children.push(next);\n }\n}\nexports.append = append;\n/**\n * Prepend a child to an element.\n *\n * @param elem The element to prepend before.\n * @param child The element to be added as a child.\n */\nfunction prependChild(elem, child) {\n removeElement(child);\n child.parent = elem;\n child.prev = null;\n if (elem.children.unshift(child) !== 1) {\n var sibling = elem.children[1];\n sibling.prev = child;\n child.next = sibling;\n }\n else {\n child.next = null;\n }\n}\nexports.prependChild = prependChild;\n/**\n * Prepend an element before another.\n *\n * @param elem The element to prepend before.\n * @param prev The element be added.\n */\nfunction prepend(elem, prev) {\n removeElement(prev);\n var parent = elem.parent;\n if (parent) {\n var childs = parent.children;\n childs.splice(childs.indexOf(elem), 0, prev);\n }\n if (elem.prev) {\n elem.prev.next = prev;\n }\n prev.parent = parent;\n prev.prev = elem.prev;\n prev.next = elem;\n elem.prev = prev;\n}\nexports.prepend = prepend;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.uniqueSort = exports.compareDocumentPosition = exports.removeSubsets = void 0;\nvar domhandler_1 = require(\"domhandler\");\n/**\n * Given an array of nodes, remove any member that is contained by another.\n *\n * @param nodes Nodes to filter.\n * @returns Remaining nodes that aren't subtrees of each other.\n */\nfunction removeSubsets(nodes) {\n var idx = nodes.length;\n /*\n * Check if each node (or one of its ancestors) is already contained in the\n * array.\n */\n while (--idx >= 0) {\n var node = nodes[idx];\n /*\n * Remove the node if it is not unique.\n * We are going through the array from the end, so we only\n * have to check nodes that preceed the node under consideration in the array.\n */\n if (idx > 0 && nodes.lastIndexOf(node, idx - 1) >= 0) {\n nodes.splice(idx, 1);\n continue;\n }\n for (var ancestor = node.parent; ancestor; ancestor = ancestor.parent) {\n if (nodes.includes(ancestor)) {\n nodes.splice(idx, 1);\n break;\n }\n }\n }\n return nodes;\n}\nexports.removeSubsets = removeSubsets;\n/**\n * Compare the position of one node against another node in any other document.\n * The return value is a bitmask with the following values:\n *\n * Document order:\n * > There is an ordering, document order, defined on all the nodes in the\n * > document corresponding to the order in which the first character of the\n * > XML representation of each node occurs in the XML representation of the\n * > document after expansion of general entities. Thus, the document element\n * > node will be the first node. Element nodes occur before their children.\n * > Thus, document order orders element nodes in order of the occurrence of\n * > their start-tag in the XML (after expansion of entities). The attribute\n * > nodes of an element occur after the element and before its children. The\n * > relative order of attribute nodes is implementation-dependent./\n *\n * Source:\n * http://www.w3.org/TR/DOM-Level-3-Core/glossary.html#dt-document-order\n *\n * @param nodeA The first node to use in the comparison\n * @param nodeB The second node to use in the comparison\n * @returns A bitmask describing the input nodes' relative position.\n *\n * See http://dom.spec.whatwg.org/#dom-node-comparedocumentposition for\n * a description of these values.\n */\nfunction compareDocumentPosition(nodeA, nodeB) {\n var aParents = [];\n var bParents = [];\n if (nodeA === nodeB) {\n return 0;\n }\n var current = (0, domhandler_1.hasChildren)(nodeA) ? nodeA : nodeA.parent;\n while (current) {\n aParents.unshift(current);\n current = current.parent;\n }\n current = (0, domhandler_1.hasChildren)(nodeB) ? nodeB : nodeB.parent;\n while (current) {\n bParents.unshift(current);\n current = current.parent;\n }\n var maxIdx = Math.min(aParents.length, bParents.length);\n var idx = 0;\n while (idx < maxIdx && aParents[idx] === bParents[idx]) {\n idx++;\n }\n if (idx === 0) {\n return 1 /* DISCONNECTED */;\n }\n var sharedParent = aParents[idx - 1];\n var siblings = sharedParent.children;\n var aSibling = aParents[idx];\n var bSibling = bParents[idx];\n if (siblings.indexOf(aSibling) > siblings.indexOf(bSibling)) {\n if (sharedParent === nodeB) {\n return 4 /* FOLLOWING */ | 16 /* CONTAINED_BY */;\n }\n return 4 /* FOLLOWING */;\n }\n if (sharedParent === nodeA) {\n return 2 /* PRECEDING */ | 8 /* CONTAINS */;\n }\n return 2 /* PRECEDING */;\n}\nexports.compareDocumentPosition = compareDocumentPosition;\n/**\n * Sort an array of nodes based on their relative position in the document and\n * remove any duplicate nodes. If the array contains nodes that do not belong\n * to the same document, sort order is unspecified.\n *\n * @param nodes Array of DOM nodes.\n * @returns Collection of unique nodes, sorted in document order.\n */\nfunction uniqueSort(nodes) {\n nodes = nodes.filter(function (node, i, arr) { return !arr.includes(node, i + 1); });\n nodes.sort(function (a, b) {\n var relative = compareDocumentPosition(a, b);\n if (relative & 2 /* PRECEDING */) {\n return -1;\n }\n else if (relative & 4 /* FOLLOWING */) {\n return 1;\n }\n return 0;\n });\n return nodes;\n}\nexports.uniqueSort = uniqueSort;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getFeed = void 0;\nvar stringify_1 = require(\"./stringify\");\nvar legacy_1 = require(\"./legacy\");\n/**\n * Get the feed object from the root of a DOM tree.\n *\n * @param doc - The DOM to to extract the feed from.\n * @returns The feed.\n */\nfunction getFeed(doc) {\n var feedRoot = getOneElement(isValidFeed, doc);\n return !feedRoot\n ? null\n : feedRoot.name === \"feed\"\n ? getAtomFeed(feedRoot)\n : getRssFeed(feedRoot);\n}\nexports.getFeed = getFeed;\n/**\n * Parse an Atom feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getAtomFeed(feedRoot) {\n var _a;\n var childs = feedRoot.children;\n var feed = {\n type: \"atom\",\n items: (0, legacy_1.getElementsByTagName)(\"entry\", childs).map(function (item) {\n var _a;\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"id\", children);\n addConditionally(entry, \"title\", \"title\", children);\n var href = (_a = getOneElement(\"link\", children)) === null || _a === void 0 ? void 0 : _a.attribs.href;\n if (href) {\n entry.link = href;\n }\n var description = fetch(\"summary\", children) || fetch(\"content\", children);\n if (description) {\n entry.description = description;\n }\n var pubDate = fetch(\"updated\", children);\n if (pubDate) {\n entry.pubDate = new Date(pubDate);\n }\n return entry;\n }),\n };\n addConditionally(feed, \"id\", \"id\", childs);\n addConditionally(feed, \"title\", \"title\", childs);\n var href = (_a = getOneElement(\"link\", childs)) === null || _a === void 0 ? void 0 : _a.attribs.href;\n if (href) {\n feed.link = href;\n }\n addConditionally(feed, \"description\", \"subtitle\", childs);\n var updated = fetch(\"updated\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"email\", childs, true);\n return feed;\n}\n/**\n * Parse a RSS feed.\n *\n * @param feedRoot The root of the feed.\n * @returns The parsed feed.\n */\nfunction getRssFeed(feedRoot) {\n var _a, _b;\n var childs = (_b = (_a = getOneElement(\"channel\", feedRoot.children)) === null || _a === void 0 ? void 0 : _a.children) !== null && _b !== void 0 ? _b : [];\n var feed = {\n type: feedRoot.name.substr(0, 3),\n id: \"\",\n items: (0, legacy_1.getElementsByTagName)(\"item\", feedRoot.children).map(function (item) {\n var children = item.children;\n var entry = { media: getMediaElements(children) };\n addConditionally(entry, \"id\", \"guid\", children);\n addConditionally(entry, \"title\", \"title\", children);\n addConditionally(entry, \"link\", \"link\", children);\n addConditionally(entry, \"description\", \"description\", children);\n var pubDate = fetch(\"pubDate\", children);\n if (pubDate)\n entry.pubDate = new Date(pubDate);\n return entry;\n }),\n };\n addConditionally(feed, \"title\", \"title\", childs);\n addConditionally(feed, \"link\", \"link\", childs);\n addConditionally(feed, \"description\", \"description\", childs);\n var updated = fetch(\"lastBuildDate\", childs);\n if (updated) {\n feed.updated = new Date(updated);\n }\n addConditionally(feed, \"author\", \"managingEditor\", childs, true);\n return feed;\n}\nvar MEDIA_KEYS_STRING = [\"url\", \"type\", \"lang\"];\nvar MEDIA_KEYS_INT = [\n \"fileSize\",\n \"bitrate\",\n \"framerate\",\n \"samplingrate\",\n \"channels\",\n \"duration\",\n \"height\",\n \"width\",\n];\n/**\n * Get all media elements of a feed item.\n *\n * @param where Nodes to search in.\n * @returns Media elements.\n */\nfunction getMediaElements(where) {\n return (0, legacy_1.getElementsByTagName)(\"media:content\", where).map(function (elem) {\n var attribs = elem.attribs;\n var media = {\n medium: attribs.medium,\n isDefault: !!attribs.isDefault,\n };\n for (var _i = 0, MEDIA_KEYS_STRING_1 = MEDIA_KEYS_STRING; _i < MEDIA_KEYS_STRING_1.length; _i++) {\n var attrib = MEDIA_KEYS_STRING_1[_i];\n if (attribs[attrib]) {\n media[attrib] = attribs[attrib];\n }\n }\n for (var _a = 0, MEDIA_KEYS_INT_1 = MEDIA_KEYS_INT; _a < MEDIA_KEYS_INT_1.length; _a++) {\n var attrib = MEDIA_KEYS_INT_1[_a];\n if (attribs[attrib]) {\n media[attrib] = parseInt(attribs[attrib], 10);\n }\n }\n if (attribs.expression) {\n media.expression =\n attribs.expression;\n }\n return media;\n });\n}\n/**\n * Get one element by tag name.\n *\n * @param tagName Tag name to look for\n * @param node Node to search in\n * @returns The element or null\n */\nfunction getOneElement(tagName, node) {\n return (0, legacy_1.getElementsByTagName)(tagName, node, true, 1)[0];\n}\n/**\n * Get the text content of an element with a certain tag name.\n *\n * @param tagName Tag name to look for.\n * @param where Node to search in.\n * @param recurse Whether to recurse into child nodes.\n * @returns The text content of the element.\n */\nfunction fetch(tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n return (0, stringify_1.textContent)((0, legacy_1.getElementsByTagName)(tagName, where, recurse, 1)).trim();\n}\n/**\n * Adds a property to an object if it has a value.\n *\n * @param obj Object to be extended\n * @param prop Property name\n * @param tagName Tag name that contains the conditionally added property\n * @param where Element to search for the property\n * @param recurse Whether to recurse into child nodes.\n */\nfunction addConditionally(obj, prop, tagName, where, recurse) {\n if (recurse === void 0) { recurse = false; }\n var val = fetch(tagName, where, recurse);\n if (val)\n obj[prop] = val;\n}\n/**\n * Checks if an element is a feed root node.\n *\n * @param value The name of the element to check.\n * @returns Whether an element is a feed root node.\n */\nfunction isValidFeed(value) {\n return value === \"rss\" || value === \"feed\" || value === \"rdf:RDF\";\n}\n","import {\n DomHandler as OriginalDomHandler,\n DomHandlerOptions as OriginalDomHandlerOptions,\n Document,\n Element,\n Node,\n Text,\n NodeWithChildren\n} from 'domhandler';\nimport { isDomElement, isDomText } from './dom-utils';\n\n/**\n * A record of callback to visit the DOM.\n *\n * @public\n */\nexport interface DomVisitorCallbacks {\n /**\n * A callback invoked when encountering a {@link Document}.\n *\n * @param document - The document to visit.\n *\n */\n onDocument?(document: Document): void;\n /**\n * A callback invoked when encountering an {@link Element}.\n *\n * @param element - The element to visit.\n */\n onElement?(element: Element): void;\n /**\n * A callback invoked when encountering a {@link Text} node.\n *\n * @param text - The text to visit.\n */\n onText?(text: Text): void;\n}\n\nexport interface DomHandlerOptions extends OriginalDomHandlerOptions {\n ignoredTags?: string[];\n visitors?: DomVisitorCallbacks;\n ignoreNode?: (\n node: Node,\n parent: NodeWithChildren\n ) => boolean | void | unknown;\n}\n\nexport default class DomHandler extends OriginalDomHandler {\n private ignoredTags: Record;\n private ignoredTagsCount = -1;\n private visitors: DomVisitorCallbacks;\n\n constructor(options: DomHandlerOptions) {\n super(undefined, options, undefined);\n let ignoredTags: DomHandler['ignoredTags'] = {};\n for (const tag of options.ignoredTags || []) {\n ignoredTags[tag] = true;\n }\n this.ignoredTags = ignoredTags;\n this.visitors = options.visitors || {};\n const isIgnored = this.isIgnored.bind(this);\n if (options.ignoreNode) {\n this.isIgnored = (node) => {\n return (\n isIgnored(node) ||\n options.ignoreNode!(node, this.tagStack[this.tagStack.length - 1])\n );\n };\n }\n }\n\n isIgnored(node: Node): boolean | unknown | void {\n return (\n (this.ignoredTags[(node as Element).name] as boolean) ||\n this.ignoredTagsCount > -1\n );\n }\n\n addNode(node: Node): void {\n if (this.isIgnored(node) === true) {\n // increment only for elements.\n if (isDomElement(node)) {\n this.ignoredTagsCount++;\n }\n } else {\n super.addNode(node);\n if (isDomText(node)) {\n this.visitors.onText?.(node);\n }\n }\n }\n\n ontext(text: string) {\n // Only include text when out of an\n // ignoring session.\n if (this.ignoredTagsCount < 0) {\n super.ontext(text);\n }\n }\n\n onopentag(name: string, attribs: any): void {\n super.onopentag(name, attribs);\n }\n\n onclosetag() {\n // Call onElement on close to give access to this node children\n this.visitors.onElement?.(\n this.tagStack[this.tagStack.length - 1] as Element\n );\n super.onclosetag();\n if (this.ignoredTagsCount > -1) {\n this.ignoredTagsCount--;\n }\n }\n\n onend(): void {\n this.visitors.onDocument?.(this.root);\n }\n}\n","import CSSProcessor, {\n CSSProcessedProps,\n CSSProcessorConfig,\n MixedStyleDeclaration\n} from '@native-html/css-processor';\nimport HTMLModelRegistry from '../model/HTMLModelRegistry';\nimport { TNodeDescriptor } from '../tree/tree-types';\nimport { TStyles } from './TStyles';\nimport { StylesConfig } from './types';\n\nexport const emptyProcessedPropsReg: CSSProcessedProps =\n new CSSProcessedProps();\n\nfunction mapMixedStyleRecordToCSSProcessedPropsReg(\n processor: CSSProcessor,\n styles?: Record\n): Record {\n let regStyles: Record = {};\n for (const key in styles) {\n regStyles[key] = processor.compileStyleDeclaration(styles[key]);\n }\n return regStyles;\n}\n\n// Specificity hierarchy, in descending order:\n// 1. Inline styles\n// 2. ID (idsStyles)\n// 3. Classes (classesStyles)\n// 4. Element name (tagsStyles)\n// 5. Attribute styles (styles derived from attributes)\n// 6. Default element styles\n// 7. Inherited styles (baseFontStyles)\nexport class TStylesMerger {\n private processor: CSSProcessor;\n private tagsStyles: Record;\n private classesStyles: Record;\n private idsStyles: Record;\n private enableCSSInlineProcessing: boolean;\n private enableUserAgentStyles: boolean;\n private modelRegistry: HTMLModelRegistry;\n constructor(\n config: Required,\n modelRegistry: HTMLModelRegistry,\n cssProcessorConfig?: CSSProcessorConfig\n ) {\n this.processor = new CSSProcessor(cssProcessorConfig);\n this.modelRegistry = modelRegistry;\n this.classesStyles = mapMixedStyleRecordToCSSProcessedPropsReg(\n this.processor,\n config.classesStyles\n );\n this.tagsStyles = mapMixedStyleRecordToCSSProcessedPropsReg(\n this.processor,\n config.tagsStyles\n );\n this.idsStyles = mapMixedStyleRecordToCSSProcessedPropsReg(\n this.processor,\n config.idsStyles\n );\n this.enableCSSInlineProcessing = config.enableCSSInlineProcessing;\n this.enableUserAgentStyles = config.enableUserAgentStyles;\n }\n\n compileInlineCSS(inlineCSS: string) {\n return this.processor.compileInlineCSS(inlineCSS);\n }\n\n compileStyleDeclaration(styleDeclaration: MixedStyleDeclaration) {\n return this.processor.compileStyleDeclaration(styleDeclaration);\n }\n\n buildStyles(\n inlineStyle: string,\n parentStyles: TStyles | null,\n descriptor: TNodeDescriptor\n ): TStyles {\n const ownInlinePropsReg =\n this.enableCSSInlineProcessing && inlineStyle\n ? this.compileInlineCSS(inlineStyle)\n : null;\n const model = descriptor.tagName\n ? this.modelRegistry.getElementModelFromTagName(descriptor.tagName)\n : null;\n const userTagOwnProps =\n this.tagsStyles[descriptor.tagName as string] ?? null;\n const userIdOwnProps = this.idsStyles[descriptor.id as string] ?? null;\n const classes = descriptor.classes;\n const userClassesOwnPropsList = classes.map(\n (c) => this.classesStyles[c] || null\n );\n const dynamicPropsFromAttributes = this.enableUserAgentStyles\n ? (model?.getMixedUAStyles?.(descriptor, descriptor.domNode!) || null) ??\n model?.getUADerivedStyleFromAttributes?.(\n descriptor.attributes,\n descriptor.markers\n ) ??\n null\n : null;\n const userAgentTagProps = this.enableUserAgentStyles\n ? model?.mixedUAStyles ?? null\n : null;\n // Latest properties will override former properties.\n const mergedOwnProps = emptyProcessedPropsReg.merge(\n userAgentTagProps &&\n this.processor.compileStyleDeclaration(userAgentTagProps),\n dynamicPropsFromAttributes &&\n this.processor.compileStyleDeclaration(dynamicPropsFromAttributes),\n userTagOwnProps,\n ...userClassesOwnPropsList,\n userIdOwnProps,\n ownInlinePropsReg\n );\n return new TStyles(mergedOwnProps, parentStyles);\n }\n}\n","import { StylesConfig } from './types';\n\nexport const defaultStylesConfig: Required = {\n classesStyles: {},\n enableCSSInlineProcessing: true,\n enableUserAgentStyles: false,\n idsStyles: {},\n tagsStyles: {},\n baseStyle: {\n fontSize: 14,\n whiteSpace: 'normal'\n }\n};\n","import internalHTMLElementModels, {\n DefaultHTMLElementModelsStatic\n} from './defaultHTMLElementModels';\nimport HTMLElementModel from './HTMLElementModel';\nimport { HTMLModelRecord, TagName } from './model-types';\n\nexport default class HTMLModelRegistry {\n public readonly modelRecords: HTMLModelRecord =\n internalHTMLElementModels as HTMLModelRecord;\n\n constructor(\n customize?: (\n defaultHTMLElementModels: DefaultHTMLElementModelsStatic\n ) => HTMLModelRecord\n ) {\n if (typeof customize === 'function') {\n this.modelRecords = customize(internalHTMLElementModels);\n }\n }\n\n getElementModelFromTagName(\n tagName: E | TagName\n ): HTMLElementModel | null {\n if (tagName in this.modelRecords) {\n return this.modelRecords[tagName];\n }\n return null;\n }\n}\n","var _curry1 =\n/*#__PURE__*/\nrequire(\"./internal/_curry1\");\n\nvar _identity =\n/*#__PURE__*/\nrequire(\"./internal/_identity\");\n/**\n * A function that does nothing but return the parameter supplied to it. Good\n * as a default or placeholder function.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Function\n * @sig a -> a\n * @param {*} x The value to return.\n * @return {*} The input value, `x`.\n * @example\n *\n * R.identity(1); //=> 1\n *\n * const obj = {};\n * R.identity(obj) === obj; //=> true\n * @symb R.identity(a) = a\n */\n\n\nvar identity =\n/*#__PURE__*/\n_curry1(_identity);\n\nmodule.exports = identity;","function _identity(x) {\n return x;\n}\n\nmodule.exports = _identity;","var _curry2 =\n/*#__PURE__*/\nrequire(\"./internal/_curry2\");\n\nvar mergeDeepWithKey =\n/*#__PURE__*/\nrequire(\"./mergeDeepWithKey\");\n/**\n * Creates a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects:\n * - and both values are objects, the two values will be recursively merged\n * - otherwise the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig {a} -> {a} -> {a}\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.merge, R.mergeDeepLeft, R.mergeDeepWith, R.mergeDeepWithKey\n * @example\n *\n * R.mergeDeepRight({ name: 'fred', age: 10, contact: { email: 'moo@example.com' }},\n * { age: 40, contact: { email: 'baa@example.com' }});\n * //=> { name: 'fred', age: 40, contact: { email: 'baa@example.com' }}\n */\n\n\nvar mergeDeepRight =\n/*#__PURE__*/\n_curry2(function mergeDeepRight(lObj, rObj) {\n return mergeDeepWithKey(function (k, lVal, rVal) {\n return rVal;\n }, lObj, rObj);\n});\n\nmodule.exports = mergeDeepRight;","var _curry3 =\n/*#__PURE__*/\nrequire(\"./internal/_curry3\");\n\nvar _isObject =\n/*#__PURE__*/\nrequire(\"./internal/_isObject\");\n\nvar mergeWithKey =\n/*#__PURE__*/\nrequire(\"./mergeWithKey\");\n/**\n * Creates a new object with the own properties of the two provided objects.\n * If a key exists in both objects:\n * - and both associated values are also objects then the values will be\n * recursively merged.\n * - otherwise the provided function is applied to the key and associated values\n * using the resulting value as the new value associated with the key.\n * If a key only exists in one object, the value will be associated with the key\n * of the resulting object.\n *\n * @func\n * @memberOf R\n * @since v0.24.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} lObj\n * @param {Object} rObj\n * @return {Object}\n * @see R.mergeWithKey, R.mergeDeepWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeDeepWithKey(concatValues,\n * { a: true, c: { thing: 'foo', values: [10, 20] }},\n * { b: true, c: { thing: 'bar', values: [15, 35] }});\n * //=> { a: true, b: true, c: { thing: 'bar', values: [10, 20, 15, 35] }}\n */\n\n\nvar mergeDeepWithKey =\n/*#__PURE__*/\n_curry3(function mergeDeepWithKey(fn, lObj, rObj) {\n return mergeWithKey(function (k, lVal, rVal) {\n if (_isObject(lVal) && _isObject(rVal)) {\n return mergeDeepWithKey(fn, lVal, rVal);\n } else {\n return fn(k, lVal, rVal);\n }\n }, lObj, rObj);\n});\n\nmodule.exports = mergeDeepWithKey;","function _isObject(x) {\n return Object.prototype.toString.call(x) === '[object Object]';\n}\n\nmodule.exports = _isObject;","var _curry3 =\n/*#__PURE__*/\nrequire(\"./internal/_curry3\");\n\nvar _has =\n/*#__PURE__*/\nrequire(\"./internal/_has\");\n/**\n * Creates a new object with the own properties of the two provided objects. If\n * a key exists in both objects, the provided function is applied to the key\n * and the values associated with the key in each object, with the result being\n * used as the value associated with the key in the returned object.\n *\n * @func\n * @memberOf R\n * @since v0.19.0\n * @category Object\n * @sig ((String, a, a) -> a) -> {a} -> {a} -> {a}\n * @param {Function} fn\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeDeepWithKey, R.merge, R.mergeWith\n * @example\n *\n * let concatValues = (k, l, r) => k == 'values' ? R.concat(l, r) : r\n * R.mergeWithKey(concatValues,\n * { a: true, thing: 'foo', values: [10, 20] },\n * { b: true, thing: 'bar', values: [15, 35] });\n * //=> { a: true, b: true, thing: 'bar', values: [10, 20, 15, 35] }\n * @symb R.mergeWithKey(f, { x: 1, y: 2 }, { y: 5, z: 3 }) = { x: 1, y: f('y', 2, 5), z: 3 }\n */\n\n\nvar mergeWithKey =\n/*#__PURE__*/\n_curry3(function mergeWithKey(fn, l, r) {\n var result = {};\n var k;\n\n for (k in l) {\n if (_has(k, l)) {\n result[k] = _has(k, r) ? fn(k, l[k], r[k]) : l[k];\n }\n }\n\n for (k in r) {\n if (_has(k, r) && !_has(k, result)) {\n result[k] = r[k];\n }\n }\n\n return result;\n});\n\nmodule.exports = mergeWithKey;","import { Linking } from 'react-native';\nimport { RenderersProps } from '../shared-types';\n\nexport async function defaultAOnPress(_e: any, href: string): Promise {\n try {\n await Linking.openURL(href);\n } catch (e) {\n console.warn(`Could not open URL \"${href}\".`, e);\n }\n return null;\n}\n\nconst defaultRendererProps: Required = {\n img: {\n initialDimensions: {\n height: 50,\n width: 50\n },\n enableExperimentalPercentWidth: false\n },\n a: {\n onPress: defaultAOnPress\n },\n ol: {},\n ul: {}\n};\n\nexport default defaultRendererProps;\n","import CounterStyle from './CounterStyle';\nexport * from './CounterStyle';\nexport * from './public-types';\nexport default CounterStyle;\n//# sourceMappingURL=index.js.map","import decimal from './decimal';\nconst decimalLeadingZero = decimal.withPadLeft(2, '0');\nexport default decimalLeadingZero;\n//# sourceMappingURL=decimalLeadingZero.js.map","import CounterStyle from '../CounterStyle';\nconst lowerRoman = CounterStyle.additive({\n 1000: 'm',\n 900: 'cm',\n 500: 'd',\n 400: 'cd',\n 100: 'c',\n 90: 'xc',\n 50: 'l',\n 40: 'xl',\n 10: 'x',\n 9: 'ix',\n 5: 'v',\n 4: 'iv',\n 1: 'i'\n}).withRange(1, 3999);\nexport default lowerRoman;\n//# sourceMappingURL=lowerRoman.js.map","import CounterStyle from '../CounterStyle';\nconst lowerAlpha = CounterStyle.alphabeticFromUnicodeRange(97, 26);\nexport default lowerAlpha;\n//# sourceMappingURL=lowerAlpha.js.map","import CounterStyle from '../CounterStyle';\nconst lowerGreek = CounterStyle.alphabeticFromUnicodeRange(\n/* α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω */\n0x3b1, 24);\nexport default lowerGreek;\n//# sourceMappingURL=lowerGreek.js.map","import CounterStyle from '../CounterStyle';\nexport const upperAlpha = CounterStyle.alphabeticFromUnicodeRange(65, 26);\nexport default upperAlpha;\n//# sourceMappingURL=upperAlpha.js.map","import CounterStyle from '../CounterStyle';\nconst upperRoman = CounterStyle.additive({\n 1000: 'M',\n 900: 'CM',\n 500: 'D',\n 400: 'CD',\n 100: 'C',\n 90: 'XC',\n 50: 'L',\n 40: 'XL',\n 10: 'X',\n 9: 'IX',\n 5: 'V',\n 4: 'IV',\n 1: 'I'\n}).withRange(1, 3999);\nexport default upperRoman;\n//# sourceMappingURL=upperRoman.js.map","import React from 'react';\nimport { View } from 'react-native';\nimport { UnitaryCounterRendererProps } from '../../shared-types';\nimport useSymbolicMarkerRendererProps from './useSymbolicMarkerRendererStyles';\n\nexport default function DisclosureClosedSymbolRenderer(\n props: UnitaryCounterRendererProps\n) {\n const {\n prefixStyle: { top },\n prefixSize\n } = useSymbolicMarkerRendererProps(props, 1);\n return React.createElement(View, {\n style: {\n top,\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderLeftWidth: prefixSize,\n borderLeftColor: props.color,\n borderTopWidth: prefixSize / 2,\n borderTopColor: 'transparent',\n borderBottomWidth: prefixSize / 2,\n borderBottomColor: 'transparent'\n }\n });\n}\n","import React from 'react';\nimport { View } from 'react-native';\nimport { UnitaryCounterRendererProps } from '../../shared-types';\nimport useSymbolicMarkerRendererProps from './useSymbolicMarkerRendererStyles';\n\nexport default function DisclosureOpenSymbolRenderer(\n props: UnitaryCounterRendererProps\n) {\n const {\n prefixStyle: { top },\n prefixSize\n } = useSymbolicMarkerRendererProps(props, 1);\n return React.createElement(View, {\n style: {\n top,\n width: 0,\n height: 0,\n borderStyle: 'solid',\n borderTopWidth: prefixSize,\n borderTopColor: props.color,\n borderLeftWidth: prefixSize / 2,\n borderLeftColor: 'transparent',\n borderRightWidth: prefixSize / 2,\n borderRightColor: 'transparent'\n }\n });\n}\n","import React from 'react';\nimport { View } from 'react-native';\nimport { UnitaryCounterRendererProps } from '../../shared-types';\nimport useSymbolicMarkerRendererProps from './useSymbolicMarkerRendererStyles';\n\nexport default function CircleSymbolRenderer(\n props: UnitaryCounterRendererProps\n) {\n const { prefixSize, prefixStyle } = useSymbolicMarkerRendererProps(props);\n const style = {\n borderColor: props.color,\n borderWidth: prefixSize / 10,\n borderRadius: prefixSize,\n ...prefixStyle\n };\n return ;\n}\n","import React from 'react';\nimport { View } from 'react-native';\nimport { UnitaryCounterRendererProps } from '../../shared-types';\nimport useSymbolicMarkerRendererProps from './useSymbolicMarkerRendererStyles';\n\nexport default function DiscSymbolRenderer(props: UnitaryCounterRendererProps) {\n const { prefixSize, prefixStyle } = useSymbolicMarkerRendererProps(props);\n const style = {\n borderRadius: prefixSize,\n backgroundColor: props.color,\n ...prefixStyle\n };\n return ;\n}\n","import React from 'react';\nimport { View } from 'react-native';\nimport { UnitaryCounterRendererProps } from '../../shared-types';\nimport useSymbolicMarkerRendererProps from './useSymbolicMarkerRendererStyles';\n\nexport default function SquareSymbolRenderer(\n props: UnitaryCounterRendererProps\n) {\n const { prefixStyle } = useSymbolicMarkerRendererProps(props, 1.2);\n return React.createElement(View, {\n style: {\n backgroundColor: props.color,\n ...prefixStyle\n }\n });\n}\n","import pickBy from 'ramda/src/pickBy';\nimport pick from 'ramda/src/pick';\nimport pipe from 'ramda/src/pipe';\nimport mergeRight from 'ramda/src/mergeRight';\nimport { RenderHTMLProps, RenderHTMLAmbiantSharedProps } from '../shared-types';\nimport defaultSharedProps from '../context/defaultSharedProps';\n\nconst selectSharedProps: (\n props: Partial\n) => RenderHTMLAmbiantSharedProps = pipe(\n pick(Object.keys(defaultSharedProps)),\n pickBy((val) => val != null),\n mergeRight(defaultSharedProps) as any\n);\n\nexport default selectSharedProps;\n","var _curry2 =\n/*#__PURE__*/\nrequire(\"./internal/_curry2\");\n/**\n * Returns a partial copy of an object containing only the keys that satisfy\n * the supplied predicate.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @sig ((v, k) -> Boolean) -> {k: v} -> {k: v}\n * @param {Function} pred A predicate to determine whether or not a key\n * should be included on the output object.\n * @param {Object} obj The object to copy from\n * @return {Object} A new object with only properties that satisfy `pred`\n * on it.\n * @see R.pick, R.filter\n * @example\n *\n * const isUpperCase = (val, key) => key.toUpperCase() === key;\n * R.pickBy(isUpperCase, {a: 1, b: 2, A: 3, B: 4}); //=> {A: 3, B: 4}\n */\n\n\nvar pickBy =\n/*#__PURE__*/\n_curry2(function pickBy(test, obj) {\n var result = {};\n\n for (var prop in obj) {\n if (test(obj[prop], prop, obj)) {\n result[prop] = obj[prop];\n }\n }\n\n return result;\n});\n\nmodule.exports = pickBy;","var _objectAssign =\n/*#__PURE__*/\nrequire(\"./internal/_objectAssign\");\n\nvar _curry2 =\n/*#__PURE__*/\nrequire(\"./internal/_curry2\");\n/**\n * Create a new object with the own properties of the first object merged with\n * the own properties of the second object. If a key exists in both objects,\n * the value from the second object will be used.\n *\n * @func\n * @memberOf R\n * @since v0.26.0\n * @category Object\n * @sig {k: v} -> {k: v} -> {k: v}\n * @param {Object} l\n * @param {Object} r\n * @return {Object}\n * @see R.mergeLeft, R.mergeDeepRight, R.mergeWith, R.mergeWithKey\n * @example\n *\n * R.mergeRight({ 'name': 'fred', 'age': 10 }, { 'age': 40 });\n * //=> { 'name': 'fred', 'age': 40 }\n *\n * const withDefaults = R.mergeRight({x: 0, y: 0});\n * withDefaults({y: 2}); //=> {x: 0, y: 2}\n * @symb R.mergeRight(a, b) = {...a, ...b}\n */\n\n\nvar mergeRight =\n/*#__PURE__*/\n_curry2(function mergeRight(l, r) {\n return _objectAssign({}, l, r);\n});\n\nmodule.exports = mergeRight;","var _has =\n/*#__PURE__*/\nrequire(\"./_has\"); // Based on https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n\n\nfunction _objectAssign(target) {\n if (target == null) {\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var output = Object(target);\n var idx = 1;\n var length = arguments.length;\n\n while (idx < length) {\n var source = arguments[idx];\n\n if (source != null) {\n for (var nextKey in source) {\n if (_has(nextKey, source)) {\n output[nextKey] = source[nextKey];\n }\n }\n }\n\n idx += 1;\n }\n\n return output;\n}\n\nmodule.exports = typeof Object.assign === 'function' ? Object.assign : _objectAssign;","import { TNode } from '@native-html/transient-render-engine';\nimport {\n CustomRenderer,\n CustomRendererProps,\n InternalRenderer,\n InternalRendererProps,\n TDefaultRenderer,\n TDefaultRendererProps\n} from '../shared-types';\nimport { TNodeSubRendererProps } from '../internal-types';\nimport mergeCollapsedMargins from '../helpers/mergeCollapsedMargins';\nimport { useRendererConfig } from '../context/RenderRegistryProvider';\nimport { useDefaultContainerProps } from '../context/SharedPropsProvider';\n\n/**\n * @internal\n */\nexport default function useAssembledCommonProps(\n {\n tnode,\n propsFromParent,\n sharedProps,\n renderIndex,\n renderLength,\n TNodeChildrenRenderer\n }: TNodeSubRendererProps,\n TDefault: TDefaultRenderer | null\n): {\n Renderer: CustomRenderer | InternalRenderer | null;\n assembledProps: CustomRendererProps &\n TDefaultRendererProps &\n InternalRendererProps;\n} {\n const { Default, Custom } = useRendererConfig(tnode);\n const containerProps = useDefaultContainerProps();\n const assembledProps: CustomRendererProps & TDefaultRendererProps = {\n tnode,\n propsFromParent,\n sharedProps,\n TDefaultRenderer: TDefault as TDefaultRenderer,\n TNodeChildrenRenderer,\n style: mergeCollapsedMargins(\n propsFromParent?.collapsedMarginTop,\n tnode.getNativeStyles()\n ) as any,\n type: tnode.type === 'text' || tnode.type === 'phrasing' ? 'text' : 'block',\n propsForChildren: tnode.tagName ? {} : propsFromParent,\n InternalRenderer: Default || (TDefault as any),\n renderIndex,\n renderLength,\n ...containerProps\n };\n return {\n assembledProps,\n Renderer: Custom || Default || null\n };\n}\n","import { TNodeShape, TNodeType } from '@native-html/transient-render-engine';\n\nexport default function mergeCollapsedMargins(\n collapsedMarginTop: number | null | undefined,\n nativeStyle: ReturnType['getNativeStyles']>\n): ReturnType['getNativeStyles']> {\n if (typeof collapsedMarginTop !== 'number') {\n return nativeStyle;\n }\n return {\n ...nativeStyle,\n marginTop: collapsedMarginTop\n };\n}\n","import { TNode } from '@native-html/transient-render-engine';\nimport { ComponentType } from 'react';\nimport { CustomRendererProps } from '..';\nimport lookupRecord from '../helpers/lookupRecord';\nimport BRRenderer from '../renderers/BRRenderer';\nimport WBRRenderer from '../renderers/WBRRenderer';\nimport {\n CustomRenderer,\n HTMLElementModelRecord,\n InternalRenderer\n} from '../shared-types';\nimport internalRenderers from './internalRenderers';\nimport {\n CustomTagRendererRecord,\n InternalTextContentRenderer\n} from './render-types';\n\nconst internalTextRenderers: Record = {\n br: BRRenderer,\n wbr: WBRRenderer\n};\n\nexport interface RendererConfig {\n Custom: CustomRenderer | null;\n Default: InternalRenderer | null;\n}\n\nexport default class RenderRegistry {\n constructor(\n customRenderers: CustomTagRendererRecord = {},\n elementModels: HTMLElementModelRecord\n ) {\n this.customRenderers = customRenderers;\n this.elementModels = elementModels;\n }\n\n private readonly customRenderers: CustomTagRendererRecord = {};\n private readonly elementModels: HTMLElementModelRecord;\n\n private getCustomRendererForTNode(\n tnode: T\n ): ComponentType> | null {\n if (tnode.tagName! in this.customRenderers) {\n const renderer = this.customRenderers[tnode.tagName!];\n /* istanbul ignore next */\n if (typeof __DEV__ === 'boolean' && __DEV__) {\n // In DEV, check for discrepancies.\n const elementModel = this.elementModels[tnode.tagName!];\n if (!elementModel) {\n console.warn(\n `You are attempting to render a ${tnode.tagName!} tag but you didn't provide an HTMLElementModel. Make sure you register a model for this tag in \"customHTMLElementModels\" prop. `\n );\n } else if (!tnode.matchContentModel(elementModel.contentModel)) {\n console.warn(\n `You are attempting to render \"${tnode.tagName}\" of type \"${tnode.displayName}\", but the registered renderer is of content model type ${elementModel?.contentModel} which is incompatible with \"${tnode.displayName}\".`\n );\n }\n }\n return renderer as any;\n }\n return null;\n }\n\n private getDefaultRendererForTNode(\n tnode: T\n ): InternalRenderer | null {\n if (tnode.tagName! in internalRenderers) {\n //@ts-expect-error we know that the tagName is in the map\n return internalRenderers[tnode.tagName!];\n }\n return null;\n }\n\n getInternalTextRenderer(tagName: string | null) {\n if (lookupRecord(internalTextRenderers, tagName)) {\n return internalTextRenderers[tagName];\n }\n return null;\n }\n\n getRendererConfigForTNode(tnode: T): RendererConfig {\n return {\n Custom: this.getCustomRendererForTNode(tnode),\n Default: this.getDefaultRendererForTNode(tnode)\n };\n }\n}\n","export default function lookupRecord>(\n record: T,\n key: any\n): key is keyof T {\n const value = record[key];\n return !!value;\n}\n","import { TNode } from '@native-html/transient-render-engine';\nimport React from 'react';\nimport { Platform, Text, View } from 'react-native';\nimport { InternalTextContentRenderer } from '../render/render-types';\n\nconst emptyProps = {\n testID: 'br'\n};\n\nconst isWeb = Platform.OS === 'web';\n\nfunction renderEmptyLineBreak(tnode: TNode) {\n const lineHeight =\n tnode.styles.nativeTextFlow.lineHeight ||\n tnode.styles.nativeTextFlow.fontSize! * 1.4;\n return ;\n}\n\nconst BRRenderer: InternalTextContentRenderer = function BRRenderer({\n renderIndex,\n renderLength,\n sharedProps,\n tnode\n}) {\n // If it is the last child and BR collapsing is enabled, render an empty\n // string to prevent inserting an undesired space to follow HTML specs,\n // unless the platform is web and it is also the first child.\n //\n // Note that we are taking advantage of the Ghost Line oddity in React\n // Native, where an empty element displays a line, since a\n // line break opening **and** closing an inline formatting context\n // should be printed as a one line-height item.\n const isFirst = renderIndex === 0;\n const isLast = renderIndex === renderLength - 1;\n const isLonelyBreak = isFirst && isLast;\n const shouldCollapse =\n sharedProps.enableExperimentalBRCollapsing &&\n (isFirst ? isLast && !isWeb : isLast);\n return isLonelyBreak && shouldCollapse\n ? renderEmptyLineBreak(tnode)\n : React.createElement(Text, emptyProps, shouldCollapse ? '' : '\\n');\n};\n\nBRRenderer.isNativeInternalTextRenderer = true;\n\nexport default BRRenderer;\n","import React from 'react';\nimport { Text } from 'react-native';\nimport { InternalTextContentRenderer } from '../render/render-types';\n\nconst emptyProps = {};\n\nconst WBRRenderer: InternalTextContentRenderer = function WordBreakRenderer() {\n return React.createElement(Text, emptyProps, '\\u200b');\n};\n\nWBRRenderer.isNativeInternalTextRenderer = true;\n\nexport default WBRRenderer;\n","import ARenderer from '../renderers/ARenderer';\nimport IMGRenderer from '../renderers/IMGRenderer';\nimport OLRenderer from '../renderers/OLRenderer';\nimport ULRenderer from '../renderers/ULRenderer';\n\nconst internalRenderers = {\n img: IMGRenderer,\n ul: ULRenderer,\n ol: OLRenderer,\n a: ARenderer\n};\n\nexport default internalRenderers;\n","import URI from 'urijs';\n\n/**\n * This function normalize relative and protocol-relative URLs to absolute\n * URLs as per {@link https://tools.ietf.org/html/rfc1808 | RFC1808}.\n *\n * @param url - The URL to normalize.\n * @param baseUrl - The base URL to resolve relative and protocol-relative URLs.\n */\nexport default function normalizeResourceLocator(\n url: string,\n baseUrl?: string\n) {\n try {\n return baseUrl ? URI(url).absoluteTo(URI(baseUrl)).href() : URI(url).href();\n } catch (e) {\n return url;\n }\n}\n","/*!\n * URI.js - Mutating URLs\n *\n * Version: 1.19.11\n *\n * Author: Rodney Rehm\n * Web: http://medialize.github.io/URI.js/\n *\n * Licensed under\n * MIT License http://www.opensource.org/licenses/mit-license\n *\n */\n(function (root, factory) {\n 'use strict';\n // https://github.com/umdjs/umd/blob/master/returnExports.js\n if (typeof module === 'object' && module.exports) {\n // Node\n module.exports = factory(require('./punycode'), require('./IPv6'), require('./SecondLevelDomains'));\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(['./punycode', './IPv6', './SecondLevelDomains'], factory);\n } else {\n // Browser globals (root is window)\n root.URI = factory(root.punycode, root.IPv6, root.SecondLevelDomains, root);\n }\n}(this, function (punycode, IPv6, SLD, root) {\n 'use strict';\n /*global location, escape, unescape */\n // FIXME: v2.0.0 renamce non-camelCase properties to uppercase\n /*jshint camelcase: false */\n\n // save current URI variable, if any\n var _URI = root && root.URI;\n\n function URI(url, base) {\n var _urlSupplied = arguments.length >= 1;\n var _baseSupplied = arguments.length >= 2;\n\n // Allow instantiation without the 'new' keyword\n if (!(this instanceof URI)) {\n if (_urlSupplied) {\n if (_baseSupplied) {\n return new URI(url, base);\n }\n\n return new URI(url);\n }\n\n return new URI();\n }\n\n if (url === undefined) {\n if (_urlSupplied) {\n throw new TypeError('undefined is not a valid argument for URI');\n }\n\n if (typeof location !== 'undefined') {\n url = location.href + '';\n } else {\n url = '';\n }\n }\n\n if (url === null) {\n if (_urlSupplied) {\n throw new TypeError('null is not a valid argument for URI');\n }\n }\n\n this.href(url);\n\n // resolve to base according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#constructor\n if (base !== undefined) {\n return this.absoluteTo(base);\n }\n\n return this;\n }\n\n function isInteger(value) {\n return /^[0-9]+$/.test(value);\n }\n\n URI.version = '1.19.11';\n\n var p = URI.prototype;\n var hasOwn = Object.prototype.hasOwnProperty;\n\n function escapeRegEx(string) {\n // https://github.com/medialize/URI.js/commit/85ac21783c11f8ccab06106dba9735a31a86924d#commitcomment-821963\n return string.replace(/([.*+?^=!:${}()|[\\]\\/\\\\])/g, '\\\\$1');\n }\n\n function getType(value) {\n // IE8 doesn't return [Object Undefined] but [Object Object] for undefined value\n if (value === undefined) {\n return 'Undefined';\n }\n\n return String(Object.prototype.toString.call(value)).slice(8, -1);\n }\n\n function isArray(obj) {\n return getType(obj) === 'Array';\n }\n\n function filterArrayValues(data, value) {\n var lookup = {};\n var i, length;\n\n if (getType(value) === 'RegExp') {\n lookup = null;\n } else if (isArray(value)) {\n for (i = 0, length = value.length; i < length; i++) {\n lookup[value[i]] = true;\n }\n } else {\n lookup[value] = true;\n }\n\n for (i = 0, length = data.length; i < length; i++) {\n /*jshint laxbreak: true */\n var _match = lookup && lookup[data[i]] !== undefined\n || !lookup && value.test(data[i]);\n /*jshint laxbreak: false */\n if (_match) {\n data.splice(i, 1);\n length--;\n i--;\n }\n }\n\n return data;\n }\n\n function arrayContains(list, value) {\n var i, length;\n\n // value may be string, number, array, regexp\n if (isArray(value)) {\n // Note: this can be optimized to O(n) (instead of current O(m * n))\n for (i = 0, length = value.length; i < length; i++) {\n if (!arrayContains(list, value[i])) {\n return false;\n }\n }\n\n return true;\n }\n\n var _type = getType(value);\n for (i = 0, length = list.length; i < length; i++) {\n if (_type === 'RegExp') {\n if (typeof list[i] === 'string' && list[i].match(value)) {\n return true;\n }\n } else if (list[i] === value) {\n return true;\n }\n }\n\n return false;\n }\n\n function arraysEqual(one, two) {\n if (!isArray(one) || !isArray(two)) {\n return false;\n }\n\n // arrays can't be equal if they have different amount of content\n if (one.length !== two.length) {\n return false;\n }\n\n one.sort();\n two.sort();\n\n for (var i = 0, l = one.length; i < l; i++) {\n if (one[i] !== two[i]) {\n return false;\n }\n }\n\n return true;\n }\n\n function trimSlashes(text) {\n var trim_expression = /^\\/+|\\/+$/g;\n return text.replace(trim_expression, '');\n }\n\n URI._parts = function() {\n return {\n protocol: null,\n username: null,\n password: null,\n hostname: null,\n urn: null,\n port: null,\n path: null,\n query: null,\n fragment: null,\n // state\n preventInvalidHostname: URI.preventInvalidHostname,\n duplicateQueryParameters: URI.duplicateQueryParameters,\n escapeQuerySpace: URI.escapeQuerySpace\n };\n };\n // state: throw on invalid hostname\n // see https://github.com/medialize/URI.js/pull/345\n // and https://github.com/medialize/URI.js/issues/354\n URI.preventInvalidHostname = false;\n // state: allow duplicate query parameters (a=1&a=1)\n URI.duplicateQueryParameters = false;\n // state: replaces + with %20 (space in query strings)\n URI.escapeQuerySpace = true;\n // static properties\n URI.protocol_expression = /^[a-z][a-z0-9.+-]*$/i;\n URI.idn_expression = /[^a-z0-9\\._-]/i;\n URI.punycode_expression = /(xn--)/i;\n // well, 333.444.555.666 matches, but it sure ain't no IPv4 - do we care?\n URI.ip4_expression = /^\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}$/;\n // credits to Rich Brown\n // source: http://forums.intermapper.com/viewtopic.php?p=1096#1096\n // specification: http://www.ietf.org/rfc/rfc4291.txt\n URI.ip6_expression = /^\\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)(\\.(25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]?\\d)){3}))|:)))(%.+)?\\s*$/;\n // expression used is \"gruber revised\" (@gruber v2) determined to be the\n // best solution in a regex-golf we did a couple of ages ago at\n // * http://mathiasbynens.be/demo/url-regex\n // * http://rodneyrehm.de/t/url-regex.html\n URI.find_uri_expression = /\\b((?:[a-z][\\w-]+:(?:\\/{1,3}|[a-z0-9%])|www\\d{0,3}[.]|[a-z0-9.\\-]+[.][a-z]{2,4}\\/)(?:[^\\s()<>]+|\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\))+(?:\\(([^\\s()<>]+|(\\([^\\s()<>]+\\)))*\\)|[^\\s`!()\\[\\]{};:'\".,<>?«»“”‘’]))/ig;\n URI.findUri = {\n // valid \"scheme://\" or \"www.\"\n start: /\\b(?:([a-z][a-z0-9.+-]*:\\/\\/)|www\\.)/gi,\n // everything up to the next whitespace\n end: /[\\s\\r\\n]|$/,\n // trim trailing punctuation captured by end RegExp\n trim: /[`!()\\[\\]{};:'\".,<>?«»“”„‘’]+$/,\n // balanced parens inclusion (), [], {}, <>\n parens: /(\\([^\\)]*\\)|\\[[^\\]]*\\]|\\{[^}]*\\}|<[^>]*>)/g,\n };\n URI.leading_whitespace_expression = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/\n // https://infra.spec.whatwg.org/#ascii-tab-or-newline\n URI.ascii_tab_whitespace = /[\\u0009\\u000A\\u000D]+/g\n // http://www.iana.org/assignments/uri-schemes.html\n // http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers#Well-known_ports\n URI.defaultPorts = {\n http: '80',\n https: '443',\n ftp: '21',\n gopher: '70',\n ws: '80',\n wss: '443'\n };\n // list of protocols which always require a hostname\n URI.hostProtocols = [\n 'http',\n 'https'\n ];\n\n // allowed hostname characters according to RFC 3986\n // ALPHA DIGIT \"-\" \".\" \"_\" \"~\" \"!\" \"$\" \"&\" \"'\" \"(\" \")\" \"*\" \"+\" \",\" \";\" \"=\" %encoded\n // I've never seen a (non-IDN) hostname other than: ALPHA DIGIT . - _\n URI.invalid_hostname_characters = /[^a-zA-Z0-9\\.\\-:_]/;\n // map DOM Elements to their URI attribute\n URI.domAttributes = {\n 'a': 'href',\n 'blockquote': 'cite',\n 'link': 'href',\n 'base': 'href',\n 'script': 'src',\n 'form': 'action',\n 'img': 'src',\n 'area': 'href',\n 'iframe': 'src',\n 'embed': 'src',\n 'source': 'src',\n 'track': 'src',\n 'input': 'src', // but only if type=\"image\"\n 'audio': 'src',\n 'video': 'src'\n };\n URI.getDomAttribute = function(node) {\n if (!node || !node.nodeName) {\n return undefined;\n }\n\n var nodeName = node.nodeName.toLowerCase();\n // should only expose src for type=\"image\"\n if (nodeName === 'input' && node.type !== 'image') {\n return undefined;\n }\n\n return URI.domAttributes[nodeName];\n };\n\n function escapeForDumbFirefox36(value) {\n // https://github.com/medialize/URI.js/issues/91\n return escape(value);\n }\n\n // encoding / decoding according to RFC3986\n function strictEncodeURIComponent(string) {\n // see https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/encodeURIComponent\n return encodeURIComponent(string)\n .replace(/[!'()*]/g, escapeForDumbFirefox36)\n .replace(/\\*/g, '%2A');\n }\n URI.encode = strictEncodeURIComponent;\n URI.decode = decodeURIComponent;\n URI.iso8859 = function() {\n URI.encode = escape;\n URI.decode = unescape;\n };\n URI.unicode = function() {\n URI.encode = strictEncodeURIComponent;\n URI.decode = decodeURIComponent;\n };\n URI.characters = {\n pathname: {\n encode: {\n // RFC3986 2.1: For consistency, URI producers and normalizers should\n // use uppercase hexadecimal digits for all percent-encodings.\n expression: /%(24|26|2B|2C|3B|3D|3A|40)/ig,\n map: {\n // -._~!'()*\n '%24': '$',\n '%26': '&',\n '%2B': '+',\n '%2C': ',',\n '%3B': ';',\n '%3D': '=',\n '%3A': ':',\n '%40': '@'\n }\n },\n decode: {\n expression: /[\\/\\?#]/g,\n map: {\n '/': '%2F',\n '?': '%3F',\n '#': '%23'\n }\n }\n },\n reserved: {\n encode: {\n // RFC3986 2.1: For consistency, URI producers and normalizers should\n // use uppercase hexadecimal digits for all percent-encodings.\n expression: /%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,\n map: {\n // gen-delims\n '%3A': ':',\n '%2F': '/',\n '%3F': '?',\n '%23': '#',\n '%5B': '[',\n '%5D': ']',\n '%40': '@',\n // sub-delims\n '%21': '!',\n '%24': '$',\n '%26': '&',\n '%27': '\\'',\n '%28': '(',\n '%29': ')',\n '%2A': '*',\n '%2B': '+',\n '%2C': ',',\n '%3B': ';',\n '%3D': '='\n }\n }\n },\n urnpath: {\n // The characters under `encode` are the characters called out by RFC 2141 as being acceptable\n // for usage in a URN. RFC2141 also calls out \"-\", \".\", and \"_\" as acceptable characters, but\n // these aren't encoded by encodeURIComponent, so we don't have to call them out here. Also\n // note that the colon character is not featured in the encoding map; this is because URI.js\n // gives the colons in URNs semantic meaning as the delimiters of path segements, and so it\n // should not appear unencoded in a segment itself.\n // See also the note above about RFC3986 and capitalalized hex digits.\n encode: {\n expression: /%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,\n map: {\n '%21': '!',\n '%24': '$',\n '%27': '\\'',\n '%28': '(',\n '%29': ')',\n '%2A': '*',\n '%2B': '+',\n '%2C': ',',\n '%3B': ';',\n '%3D': '=',\n '%40': '@'\n }\n },\n // These characters are the characters called out by RFC2141 as \"reserved\" characters that\n // should never appear in a URN, plus the colon character (see note above).\n decode: {\n expression: /[\\/\\?#:]/g,\n map: {\n '/': '%2F',\n '?': '%3F',\n '#': '%23',\n ':': '%3A'\n }\n }\n }\n };\n URI.encodeQuery = function(string, escapeQuerySpace) {\n var escaped = URI.encode(string + '');\n if (escapeQuerySpace === undefined) {\n escapeQuerySpace = URI.escapeQuerySpace;\n }\n\n return escapeQuerySpace ? escaped.replace(/%20/g, '+') : escaped;\n };\n URI.decodeQuery = function(string, escapeQuerySpace) {\n string += '';\n if (escapeQuerySpace === undefined) {\n escapeQuerySpace = URI.escapeQuerySpace;\n }\n\n try {\n return URI.decode(escapeQuerySpace ? string.replace(/\\+/g, '%20') : string);\n } catch(e) {\n // we're not going to mess with weird encodings,\n // give up and return the undecoded original string\n // see https://github.com/medialize/URI.js/issues/87\n // see https://github.com/medialize/URI.js/issues/92\n return string;\n }\n };\n // generate encode/decode path functions\n var _parts = {'encode':'encode', 'decode':'decode'};\n var _part;\n var generateAccessor = function(_group, _part) {\n return function(string) {\n try {\n return URI[_part](string + '').replace(URI.characters[_group][_part].expression, function(c) {\n return URI.characters[_group][_part].map[c];\n });\n } catch (e) {\n // we're not going to mess with weird encodings,\n // give up and return the undecoded original string\n // see https://github.com/medialize/URI.js/issues/87\n // see https://github.com/medialize/URI.js/issues/92\n return string;\n }\n };\n };\n\n for (_part in _parts) {\n URI[_part + 'PathSegment'] = generateAccessor('pathname', _parts[_part]);\n URI[_part + 'UrnPathSegment'] = generateAccessor('urnpath', _parts[_part]);\n }\n\n var generateSegmentedPathFunction = function(_sep, _codingFuncName, _innerCodingFuncName) {\n return function(string) {\n // Why pass in names of functions, rather than the function objects themselves? The\n // definitions of some functions (but in particular, URI.decode) will occasionally change due\n // to URI.js having ISO8859 and Unicode modes. Passing in the name and getting it will ensure\n // that the functions we use here are \"fresh\".\n var actualCodingFunc;\n if (!_innerCodingFuncName) {\n actualCodingFunc = URI[_codingFuncName];\n } else {\n actualCodingFunc = function(string) {\n return URI[_codingFuncName](URI[_innerCodingFuncName](string));\n };\n }\n\n var segments = (string + '').split(_sep);\n\n for (var i = 0, length = segments.length; i < length; i++) {\n segments[i] = actualCodingFunc(segments[i]);\n }\n\n return segments.join(_sep);\n };\n };\n\n // This takes place outside the above loop because we don't want, e.g., encodeUrnPath functions.\n URI.decodePath = generateSegmentedPathFunction('/', 'decodePathSegment');\n URI.decodeUrnPath = generateSegmentedPathFunction(':', 'decodeUrnPathSegment');\n URI.recodePath = generateSegmentedPathFunction('/', 'encodePathSegment', 'decode');\n URI.recodeUrnPath = generateSegmentedPathFunction(':', 'encodeUrnPathSegment', 'decode');\n\n URI.encodeReserved = generateAccessor('reserved', 'encode');\n\n URI.parse = function(string, parts) {\n var pos;\n if (!parts) {\n parts = {\n preventInvalidHostname: URI.preventInvalidHostname\n };\n }\n\n string = string.replace(URI.leading_whitespace_expression, '')\n // https://infra.spec.whatwg.org/#ascii-tab-or-newline\n string = string.replace(URI.ascii_tab_whitespace, '')\n\n // [protocol\"://\"[username[\":\"password]\"@\"]hostname[\":\"port]\"/\"?][path][\"?\"querystring][\"#\"fragment]\n\n // extract fragment\n pos = string.indexOf('#');\n if (pos > -1) {\n // escaping?\n parts.fragment = string.substring(pos + 1) || null;\n string = string.substring(0, pos);\n }\n\n // extract query\n pos = string.indexOf('?');\n if (pos > -1) {\n // escaping?\n parts.query = string.substring(pos + 1) || null;\n string = string.substring(0, pos);\n }\n\n // slashes and backslashes have lost all meaning for the web protocols (https, http, wss, ws)\n string = string.replace(/^(https?|ftp|wss?)?:+[/\\\\]*/i, '$1://');\n // slashes and backslashes have lost all meaning for scheme relative URLs\n string = string.replace(/^[/\\\\]{2,}/i, '//');\n\n // extract protocol\n if (string.substring(0, 2) === '//') {\n // relative-scheme\n parts.protocol = null;\n string = string.substring(2);\n // extract \"user:pass@host:port\"\n string = URI.parseAuthority(string, parts);\n } else {\n pos = string.indexOf(':');\n if (pos > -1) {\n parts.protocol = string.substring(0, pos) || null;\n if (parts.protocol && !parts.protocol.match(URI.protocol_expression)) {\n // : may be within the path\n parts.protocol = undefined;\n } else if (string.substring(pos + 1, pos + 3).replace(/\\\\/g, '/') === '//') {\n string = string.substring(pos + 3);\n\n // extract \"user:pass@host:port\"\n string = URI.parseAuthority(string, parts);\n } else {\n string = string.substring(pos + 1);\n parts.urn = true;\n }\n }\n }\n\n // what's left must be the path\n parts.path = string;\n\n // and we're done\n return parts;\n };\n URI.parseHost = function(string, parts) {\n if (!string) {\n string = '';\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://github.com/joyent/node/blob/386fd24f49b0e9d1a8a076592a404168faeecc34/lib/url.js#L115-L124\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n // https://github.com/medialize/URI.js/pull/233\n string = string.replace(/\\\\/g, '/');\n\n // extract host:port\n var pos = string.indexOf('/');\n var bracketPos;\n var t;\n\n if (pos === -1) {\n pos = string.length;\n }\n\n if (string.charAt(0) === '[') {\n // IPv6 host - http://tools.ietf.org/html/draft-ietf-6man-text-addr-representation-04#section-6\n // I claim most client software breaks on IPv6 anyways. To simplify things, URI only accepts\n // IPv6+port in the format [2001:db8::1]:80 (for the time being)\n bracketPos = string.indexOf(']');\n parts.hostname = string.substring(1, bracketPos) || null;\n parts.port = string.substring(bracketPos + 2, pos) || null;\n if (parts.port === '/') {\n parts.port = null;\n }\n } else {\n var firstColon = string.indexOf(':');\n var firstSlash = string.indexOf('/');\n var nextColon = string.indexOf(':', firstColon + 1);\n if (nextColon !== -1 && (firstSlash === -1 || nextColon < firstSlash)) {\n // IPv6 host contains multiple colons - but no port\n // this notation is actually not allowed by RFC 3986, but we're a liberal parser\n parts.hostname = string.substring(0, pos) || null;\n parts.port = null;\n } else {\n t = string.substring(0, pos).split(':');\n parts.hostname = t[0] || null;\n parts.port = t[1] || null;\n }\n }\n\n if (parts.hostname && string.substring(pos).charAt(0) !== '/') {\n pos++;\n string = '/' + string;\n }\n\n if (parts.preventInvalidHostname) {\n URI.ensureValidHostname(parts.hostname, parts.protocol);\n }\n\n if (parts.port) {\n URI.ensureValidPort(parts.port);\n }\n\n return string.substring(pos) || '/';\n };\n URI.parseAuthority = function(string, parts) {\n string = URI.parseUserinfo(string, parts);\n return URI.parseHost(string, parts);\n };\n URI.parseUserinfo = function(string, parts) {\n // extract username:password\n var _string = string\n var firstBackSlash = string.indexOf('\\\\');\n if (firstBackSlash !== -1) {\n string = string.replace(/\\\\/g, '/')\n }\n var firstSlash = string.indexOf('/');\n var pos = string.lastIndexOf('@', firstSlash > -1 ? firstSlash : string.length - 1);\n var t;\n\n // authority@ must come before /path or \\path\n if (pos > -1 && (firstSlash === -1 || pos < firstSlash)) {\n t = string.substring(0, pos).split(':');\n parts.username = t[0] ? URI.decode(t[0]) : null;\n t.shift();\n parts.password = t[0] ? URI.decode(t.join(':')) : null;\n string = _string.substring(pos + 1);\n } else {\n parts.username = null;\n parts.password = null;\n }\n\n return string;\n };\n URI.parseQuery = function(string, escapeQuerySpace) {\n if (!string) {\n return {};\n }\n\n // throw out the funky business - \"?\"[name\"=\"value\"&\"]+\n string = string.replace(/&+/g, '&').replace(/^\\?*&*|&+$/g, '');\n\n if (!string) {\n return {};\n }\n\n var items = {};\n var splits = string.split('&');\n var length = splits.length;\n var v, name, value;\n\n for (var i = 0; i < length; i++) {\n v = splits[i].split('=');\n name = URI.decodeQuery(v.shift(), escapeQuerySpace);\n // no \"=\" is null according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#collect-url-parameters\n value = v.length ? URI.decodeQuery(v.join('='), escapeQuerySpace) : null;\n\n if (name === '__proto__') {\n // ignore attempt at exploiting JavaScript internals\n continue;\n } else if (hasOwn.call(items, name)) {\n if (typeof items[name] === 'string' || items[name] === null) {\n items[name] = [items[name]];\n }\n\n items[name].push(value);\n } else {\n items[name] = value;\n }\n }\n\n return items;\n };\n\n URI.build = function(parts) {\n var t = '';\n var requireAbsolutePath = false\n\n if (parts.protocol) {\n t += parts.protocol + ':';\n }\n\n if (!parts.urn && (t || parts.hostname)) {\n t += '//';\n requireAbsolutePath = true\n }\n\n t += (URI.buildAuthority(parts) || '');\n\n if (typeof parts.path === 'string') {\n if (parts.path.charAt(0) !== '/' && requireAbsolutePath) {\n t += '/';\n }\n\n t += parts.path;\n }\n\n if (typeof parts.query === 'string' && parts.query) {\n t += '?' + parts.query;\n }\n\n if (typeof parts.fragment === 'string' && parts.fragment) {\n t += '#' + parts.fragment;\n }\n return t;\n };\n URI.buildHost = function(parts) {\n var t = '';\n\n if (!parts.hostname) {\n return '';\n } else if (URI.ip6_expression.test(parts.hostname)) {\n t += '[' + parts.hostname + ']';\n } else {\n t += parts.hostname;\n }\n\n if (parts.port) {\n t += ':' + parts.port;\n }\n\n return t;\n };\n URI.buildAuthority = function(parts) {\n return URI.buildUserinfo(parts) + URI.buildHost(parts);\n };\n URI.buildUserinfo = function(parts) {\n var t = '';\n\n if (parts.username) {\n t += URI.encode(parts.username);\n }\n\n if (parts.password) {\n t += ':' + URI.encode(parts.password);\n }\n\n if (t) {\n t += '@';\n }\n\n return t;\n };\n URI.buildQuery = function(data, duplicateQueryParameters, escapeQuerySpace) {\n // according to http://tools.ietf.org/html/rfc3986 or http://labs.apache.org/webarch/uri/rfc/rfc3986.html\n // being »-._~!$&'()*+,;=:@/?« %HEX and alnum are allowed\n // the RFC explicitly states ?/foo being a valid use case, no mention of parameter syntax!\n // URI.js treats the query string as being application/x-www-form-urlencoded\n // see http://www.w3.org/TR/REC-html40/interact/forms.html#form-content-type\n\n var t = '';\n var unique, key, i, length;\n for (key in data) {\n if (key === '__proto__') {\n // ignore attempt at exploiting JavaScript internals\n continue;\n } else if (hasOwn.call(data, key)) {\n if (isArray(data[key])) {\n unique = {};\n for (i = 0, length = data[key].length; i < length; i++) {\n if (data[key][i] !== undefined && unique[data[key][i] + ''] === undefined) {\n t += '&' + URI.buildQueryParameter(key, data[key][i], escapeQuerySpace);\n if (duplicateQueryParameters !== true) {\n unique[data[key][i] + ''] = true;\n }\n }\n }\n } else if (data[key] !== undefined) {\n t += '&' + URI.buildQueryParameter(key, data[key], escapeQuerySpace);\n }\n }\n }\n\n return t.substring(1);\n };\n URI.buildQueryParameter = function(name, value, escapeQuerySpace) {\n // http://www.w3.org/TR/REC-html40/interact/forms.html#form-content-type -- application/x-www-form-urlencoded\n // don't append \"=\" for null values, according to http://dvcs.w3.org/hg/url/raw-file/tip/Overview.html#url-parameter-serialization\n return URI.encodeQuery(name, escapeQuerySpace) + (value !== null ? '=' + URI.encodeQuery(value, escapeQuerySpace) : '');\n };\n\n URI.addQuery = function(data, name, value) {\n if (typeof name === 'object') {\n for (var key in name) {\n if (hasOwn.call(name, key)) {\n URI.addQuery(data, key, name[key]);\n }\n }\n } else if (typeof name === 'string') {\n if (data[name] === undefined) {\n data[name] = value;\n return;\n } else if (typeof data[name] === 'string') {\n data[name] = [data[name]];\n }\n\n if (!isArray(value)) {\n value = [value];\n }\n\n data[name] = (data[name] || []).concat(value);\n } else {\n throw new TypeError('URI.addQuery() accepts an object, string as the name parameter');\n }\n };\n\n URI.setQuery = function(data, name, value) {\n if (typeof name === 'object') {\n for (var key in name) {\n if (hasOwn.call(name, key)) {\n URI.setQuery(data, key, name[key]);\n }\n }\n } else if (typeof name === 'string') {\n data[name] = value === undefined ? null : value;\n } else {\n throw new TypeError('URI.setQuery() accepts an object, string as the name parameter');\n }\n };\n\n URI.removeQuery = function(data, name, value) {\n var i, length, key;\n\n if (isArray(name)) {\n for (i = 0, length = name.length; i < length; i++) {\n data[name[i]] = undefined;\n }\n } else if (getType(name) === 'RegExp') {\n for (key in data) {\n if (name.test(key)) {\n data[key] = undefined;\n }\n }\n } else if (typeof name === 'object') {\n for (key in name) {\n if (hasOwn.call(name, key)) {\n URI.removeQuery(data, key, name[key]);\n }\n }\n } else if (typeof name === 'string') {\n if (value !== undefined) {\n if (getType(value) === 'RegExp') {\n if (!isArray(data[name]) && value.test(data[name])) {\n data[name] = undefined;\n } else {\n data[name] = filterArrayValues(data[name], value);\n }\n } else if (data[name] === String(value) && (!isArray(value) || value.length === 1)) {\n data[name] = undefined;\n } else if (isArray(data[name])) {\n data[name] = filterArrayValues(data[name], value);\n }\n } else {\n data[name] = undefined;\n }\n } else {\n throw new TypeError('URI.removeQuery() accepts an object, string, RegExp as the first parameter');\n }\n };\n URI.hasQuery = function(data, name, value, withinArray) {\n switch (getType(name)) {\n case 'String':\n // Nothing to do here\n break;\n\n case 'RegExp':\n for (var key in data) {\n if (hasOwn.call(data, key)) {\n if (name.test(key) && (value === undefined || URI.hasQuery(data, key, value))) {\n return true;\n }\n }\n }\n\n return false;\n\n case 'Object':\n for (var _key in name) {\n if (hasOwn.call(name, _key)) {\n if (!URI.hasQuery(data, _key, name[_key])) {\n return false;\n }\n }\n }\n\n return true;\n\n default:\n throw new TypeError('URI.hasQuery() accepts a string, regular expression or object as the name parameter');\n }\n\n switch (getType(value)) {\n case 'Undefined':\n // true if exists (but may be empty)\n return name in data; // data[name] !== undefined;\n\n case 'Boolean':\n // true if exists and non-empty\n var _booly = Boolean(isArray(data[name]) ? data[name].length : data[name]);\n return value === _booly;\n\n case 'Function':\n // allow complex comparison\n return !!value(data[name], name, data);\n\n case 'Array':\n if (!isArray(data[name])) {\n return false;\n }\n\n var op = withinArray ? arrayContains : arraysEqual;\n return op(data[name], value);\n\n case 'RegExp':\n if (!isArray(data[name])) {\n return Boolean(data[name] && data[name].match(value));\n }\n\n if (!withinArray) {\n return false;\n }\n\n return arrayContains(data[name], value);\n\n case 'Number':\n value = String(value);\n /* falls through */\n case 'String':\n if (!isArray(data[name])) {\n return data[name] === value;\n }\n\n if (!withinArray) {\n return false;\n }\n\n return arrayContains(data[name], value);\n\n default:\n throw new TypeError('URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter');\n }\n };\n\n\n URI.joinPaths = function() {\n var input = [];\n var segments = [];\n var nonEmptySegments = 0;\n\n for (var i = 0; i < arguments.length; i++) {\n var url = new URI(arguments[i]);\n input.push(url);\n var _segments = url.segment();\n for (var s = 0; s < _segments.length; s++) {\n if (typeof _segments[s] === 'string') {\n segments.push(_segments[s]);\n }\n\n if (_segments[s]) {\n nonEmptySegments++;\n }\n }\n }\n\n if (!segments.length || !nonEmptySegments) {\n return new URI('');\n }\n\n var uri = new URI('').segment(segments);\n\n if (input[0].path() === '' || input[0].path().slice(0, 1) === '/') {\n uri.path('/' + uri.path());\n }\n\n return uri.normalize();\n };\n\n URI.commonPath = function(one, two) {\n var length = Math.min(one.length, two.length);\n var pos;\n\n // find first non-matching character\n for (pos = 0; pos < length; pos++) {\n if (one.charAt(pos) !== two.charAt(pos)) {\n pos--;\n break;\n }\n }\n\n if (pos < 1) {\n return one.charAt(0) === two.charAt(0) && one.charAt(0) === '/' ? '/' : '';\n }\n\n // revert to last /\n if (one.charAt(pos) !== '/' || two.charAt(pos) !== '/') {\n pos = one.substring(0, pos).lastIndexOf('/');\n }\n\n return one.substring(0, pos + 1);\n };\n\n URI.withinString = function(string, callback, options) {\n options || (options = {});\n var _start = options.start || URI.findUri.start;\n var _end = options.end || URI.findUri.end;\n var _trim = options.trim || URI.findUri.trim;\n var _parens = options.parens || URI.findUri.parens;\n var _attributeOpen = /[a-z0-9-]=[\"']?$/i;\n\n _start.lastIndex = 0;\n while (true) {\n var match = _start.exec(string);\n if (!match) {\n break;\n }\n\n var start = match.index;\n if (options.ignoreHtml) {\n // attribut(e=[\"']?$)\n var attributeOpen = string.slice(Math.max(start - 3, 0), start);\n if (attributeOpen && _attributeOpen.test(attributeOpen)) {\n continue;\n }\n }\n\n var end = start + string.slice(start).search(_end);\n var slice = string.slice(start, end);\n // make sure we include well balanced parens\n var parensEnd = -1;\n while (true) {\n var parensMatch = _parens.exec(slice);\n if (!parensMatch) {\n break;\n }\n\n var parensMatchEnd = parensMatch.index + parensMatch[0].length;\n parensEnd = Math.max(parensEnd, parensMatchEnd);\n }\n\n if (parensEnd > -1) {\n slice = slice.slice(0, parensEnd) + slice.slice(parensEnd).replace(_trim, '');\n } else {\n slice = slice.replace(_trim, '');\n }\n\n if (slice.length <= match[0].length) {\n // the extract only contains the starting marker of a URI,\n // e.g. \"www\" or \"http://\"\n continue;\n }\n\n if (options.ignore && options.ignore.test(slice)) {\n continue;\n }\n\n end = start + slice.length;\n var result = callback(slice, start, end, string);\n if (result === undefined) {\n _start.lastIndex = end;\n continue;\n }\n\n result = String(result);\n string = string.slice(0, start) + result + string.slice(end);\n _start.lastIndex = start + result.length;\n }\n\n _start.lastIndex = 0;\n return string;\n };\n\n URI.ensureValidHostname = function(v, protocol) {\n // Theoretically URIs allow percent-encoding in Hostnames (according to RFC 3986)\n // they are not part of DNS and therefore ignored by URI.js\n\n var hasHostname = !!v; // not null and not an empty string\n var hasProtocol = !!protocol;\n var rejectEmptyHostname = false;\n\n if (hasProtocol) {\n rejectEmptyHostname = arrayContains(URI.hostProtocols, protocol);\n }\n\n if (rejectEmptyHostname && !hasHostname) {\n throw new TypeError('Hostname cannot be empty, if protocol is ' + protocol);\n } else if (v && v.match(URI.invalid_hostname_characters)) {\n // test punycode\n if (!punycode) {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');\n }\n if (punycode.toASCII(v).match(URI.invalid_hostname_characters)) {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-:_]');\n }\n }\n };\n\n URI.ensureValidPort = function (v) {\n if (!v) {\n return;\n }\n\n var port = Number(v);\n if (isInteger(port) && (port > 0) && (port < 65536)) {\n return;\n }\n\n throw new TypeError('Port \"' + v + '\" is not a valid port');\n };\n\n // noConflict\n URI.noConflict = function(removeAll) {\n if (removeAll) {\n var unconflicted = {\n URI: this.noConflict()\n };\n\n if (root.URITemplate && typeof root.URITemplate.noConflict === 'function') {\n unconflicted.URITemplate = root.URITemplate.noConflict();\n }\n\n if (root.IPv6 && typeof root.IPv6.noConflict === 'function') {\n unconflicted.IPv6 = root.IPv6.noConflict();\n }\n\n if (root.SecondLevelDomains && typeof root.SecondLevelDomains.noConflict === 'function') {\n unconflicted.SecondLevelDomains = root.SecondLevelDomains.noConflict();\n }\n\n return unconflicted;\n } else if (root.URI === this) {\n root.URI = _URI;\n }\n\n return this;\n };\n\n p.build = function(deferBuild) {\n if (deferBuild === true) {\n this._deferred_build = true;\n } else if (deferBuild === undefined || this._deferred_build) {\n this._string = URI.build(this._parts);\n this._deferred_build = false;\n }\n\n return this;\n };\n\n p.clone = function() {\n return new URI(this);\n };\n\n p.valueOf = p.toString = function() {\n return this.build(false)._string;\n };\n\n\n function generateSimpleAccessor(_part){\n return function(v, build) {\n if (v === undefined) {\n return this._parts[_part] || '';\n } else {\n this._parts[_part] = v || null;\n this.build(!build);\n return this;\n }\n };\n }\n\n function generatePrefixAccessor(_part, _key){\n return function(v, build) {\n if (v === undefined) {\n return this._parts[_part] || '';\n } else {\n if (v !== null) {\n v = v + '';\n if (v.charAt(0) === _key) {\n v = v.substring(1);\n }\n }\n\n this._parts[_part] = v;\n this.build(!build);\n return this;\n }\n };\n }\n\n p.protocol = generateSimpleAccessor('protocol');\n p.username = generateSimpleAccessor('username');\n p.password = generateSimpleAccessor('password');\n p.hostname = generateSimpleAccessor('hostname');\n p.port = generateSimpleAccessor('port');\n p.query = generatePrefixAccessor('query', '?');\n p.fragment = generatePrefixAccessor('fragment', '#');\n\n p.search = function(v, build) {\n var t = this.query(v, build);\n return typeof t === 'string' && t.length ? ('?' + t) : t;\n };\n p.hash = function(v, build) {\n var t = this.fragment(v, build);\n return typeof t === 'string' && t.length ? ('#' + t) : t;\n };\n\n p.pathname = function(v, build) {\n if (v === undefined || v === true) {\n var res = this._parts.path || (this._parts.hostname ? '/' : '');\n return v ? (this._parts.urn ? URI.decodeUrnPath : URI.decodePath)(res) : res;\n } else {\n if (this._parts.urn) {\n this._parts.path = v ? URI.recodeUrnPath(v) : '';\n } else {\n this._parts.path = v ? URI.recodePath(v) : '/';\n }\n this.build(!build);\n return this;\n }\n };\n p.path = p.pathname;\n p.href = function(href, build) {\n var key;\n\n if (href === undefined) {\n return this.toString();\n }\n\n this._string = '';\n this._parts = URI._parts();\n\n var _URI = href instanceof URI;\n var _object = typeof href === 'object' && (href.hostname || href.path || href.pathname);\n if (href.nodeName) {\n var attribute = URI.getDomAttribute(href);\n href = href[attribute] || '';\n _object = false;\n }\n\n // window.location is reported to be an object, but it's not the sort\n // of object we're looking for:\n // * location.protocol ends with a colon\n // * location.query != object.search\n // * location.hash != object.fragment\n // simply serializing the unknown object should do the trick\n // (for location, not for everything...)\n if (!_URI && _object && href.pathname !== undefined) {\n href = href.toString();\n }\n\n if (typeof href === 'string' || href instanceof String) {\n this._parts = URI.parse(String(href), this._parts);\n } else if (_URI || _object) {\n var src = _URI ? href._parts : href;\n for (key in src) {\n if (key === 'query') { continue; }\n if (hasOwn.call(this._parts, key)) {\n this._parts[key] = src[key];\n }\n }\n if (src.query) {\n this.query(src.query, false);\n }\n } else {\n throw new TypeError('invalid input');\n }\n\n this.build(!build);\n return this;\n };\n\n // identification accessors\n p.is = function(what) {\n var ip = false;\n var ip4 = false;\n var ip6 = false;\n var name = false;\n var sld = false;\n var idn = false;\n var punycode = false;\n var relative = !this._parts.urn;\n\n if (this._parts.hostname) {\n relative = false;\n ip4 = URI.ip4_expression.test(this._parts.hostname);\n ip6 = URI.ip6_expression.test(this._parts.hostname);\n ip = ip4 || ip6;\n name = !ip;\n sld = name && SLD && SLD.has(this._parts.hostname);\n idn = name && URI.idn_expression.test(this._parts.hostname);\n punycode = name && URI.punycode_expression.test(this._parts.hostname);\n }\n\n switch (what.toLowerCase()) {\n case 'relative':\n return relative;\n\n case 'absolute':\n return !relative;\n\n // hostname identification\n case 'domain':\n case 'name':\n return name;\n\n case 'sld':\n return sld;\n\n case 'ip':\n return ip;\n\n case 'ip4':\n case 'ipv4':\n case 'inet4':\n return ip4;\n\n case 'ip6':\n case 'ipv6':\n case 'inet6':\n return ip6;\n\n case 'idn':\n return idn;\n\n case 'url':\n return !this._parts.urn;\n\n case 'urn':\n return !!this._parts.urn;\n\n case 'punycode':\n return punycode;\n }\n\n return null;\n };\n\n // component specific input validation\n var _protocol = p.protocol;\n var _port = p.port;\n var _hostname = p.hostname;\n\n p.protocol = function(v, build) {\n if (v) {\n // accept trailing ://\n v = v.replace(/:(\\/\\/)?$/, '');\n\n if (!v.match(URI.protocol_expression)) {\n throw new TypeError('Protocol \"' + v + '\" contains characters other than [A-Z0-9.+-] or doesn\\'t start with [A-Z]');\n }\n }\n\n return _protocol.call(this, v, build);\n };\n p.scheme = p.protocol;\n p.port = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v !== undefined) {\n if (v === 0) {\n v = null;\n }\n\n if (v) {\n v += '';\n if (v.charAt(0) === ':') {\n v = v.substring(1);\n }\n\n URI.ensureValidPort(v);\n }\n }\n return _port.call(this, v, build);\n };\n p.hostname = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v !== undefined) {\n var x = { preventInvalidHostname: this._parts.preventInvalidHostname };\n var res = URI.parseHost(v, x);\n if (res !== '/') {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-]');\n }\n\n v = x.hostname;\n if (this._parts.preventInvalidHostname) {\n URI.ensureValidHostname(v, this._parts.protocol);\n }\n }\n\n return _hostname.call(this, v, build);\n };\n\n // compound accessors\n p.origin = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined) {\n var protocol = this.protocol();\n var authority = this.authority();\n if (!authority) {\n return '';\n }\n\n return (protocol ? protocol + '://' : '') + this.authority();\n } else {\n var origin = URI(v);\n this\n .protocol(origin.protocol())\n .authority(origin.authority())\n .build(!build);\n return this;\n }\n };\n p.host = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined) {\n return this._parts.hostname ? URI.buildHost(this._parts) : '';\n } else {\n var res = URI.parseHost(v, this._parts);\n if (res !== '/') {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-]');\n }\n\n this.build(!build);\n return this;\n }\n };\n p.authority = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined) {\n return this._parts.hostname ? URI.buildAuthority(this._parts) : '';\n } else {\n var res = URI.parseAuthority(v, this._parts);\n if (res !== '/') {\n throw new TypeError('Hostname \"' + v + '\" contains characters other than [A-Z0-9.-]');\n }\n\n this.build(!build);\n return this;\n }\n };\n p.userinfo = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined) {\n var t = URI.buildUserinfo(this._parts);\n return t ? t.substring(0, t.length -1) : t;\n } else {\n if (v[v.length-1] !== '@') {\n v += '@';\n }\n\n URI.parseUserinfo(v, this._parts);\n this.build(!build);\n return this;\n }\n };\n p.resource = function(v, build) {\n var parts;\n\n if (v === undefined) {\n return this.path() + this.search() + this.hash();\n }\n\n parts = URI.parse(v);\n this._parts.path = parts.path;\n this._parts.query = parts.query;\n this._parts.fragment = parts.fragment;\n this.build(!build);\n return this;\n };\n\n // fraction accessors\n p.subdomain = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n // convenience, return \"www\" from \"www.example.org\"\n if (v === undefined) {\n if (!this._parts.hostname || this.is('IP')) {\n return '';\n }\n\n // grab domain and add another segment\n var end = this._parts.hostname.length - this.domain().length - 1;\n return this._parts.hostname.substring(0, end) || '';\n } else {\n var e = this._parts.hostname.length - this.domain().length;\n var sub = this._parts.hostname.substring(0, e);\n var replace = new RegExp('^' + escapeRegEx(sub));\n\n if (v && v.charAt(v.length - 1) !== '.') {\n v += '.';\n }\n\n if (v.indexOf(':') !== -1) {\n throw new TypeError('Domains cannot contain colons');\n }\n\n if (v) {\n URI.ensureValidHostname(v, this._parts.protocol);\n }\n\n this._parts.hostname = this._parts.hostname.replace(replace, v);\n this.build(!build);\n return this;\n }\n };\n p.domain = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (typeof v === 'boolean') {\n build = v;\n v = undefined;\n }\n\n // convenience, return \"example.org\" from \"www.example.org\"\n if (v === undefined) {\n if (!this._parts.hostname || this.is('IP')) {\n return '';\n }\n\n // if hostname consists of 1 or 2 segments, it must be the domain\n var t = this._parts.hostname.match(/\\./g);\n if (t && t.length < 2) {\n return this._parts.hostname;\n }\n\n // grab tld and add another segment\n var end = this._parts.hostname.length - this.tld(build).length - 1;\n end = this._parts.hostname.lastIndexOf('.', end -1) + 1;\n return this._parts.hostname.substring(end) || '';\n } else {\n if (!v) {\n throw new TypeError('cannot set domain empty');\n }\n\n if (v.indexOf(':') !== -1) {\n throw new TypeError('Domains cannot contain colons');\n }\n\n URI.ensureValidHostname(v, this._parts.protocol);\n\n if (!this._parts.hostname || this.is('IP')) {\n this._parts.hostname = v;\n } else {\n var replace = new RegExp(escapeRegEx(this.domain()) + '$');\n this._parts.hostname = this._parts.hostname.replace(replace, v);\n }\n\n this.build(!build);\n return this;\n }\n };\n p.tld = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (typeof v === 'boolean') {\n build = v;\n v = undefined;\n }\n\n // return \"org\" from \"www.example.org\"\n if (v === undefined) {\n if (!this._parts.hostname || this.is('IP')) {\n return '';\n }\n\n var pos = this._parts.hostname.lastIndexOf('.');\n var tld = this._parts.hostname.substring(pos + 1);\n\n if (build !== true && SLD && SLD.list[tld.toLowerCase()]) {\n return SLD.get(this._parts.hostname) || tld;\n }\n\n return tld;\n } else {\n var replace;\n\n if (!v) {\n throw new TypeError('cannot set TLD empty');\n } else if (v.match(/[^a-zA-Z0-9-]/)) {\n if (SLD && SLD.is(v)) {\n replace = new RegExp(escapeRegEx(this.tld()) + '$');\n this._parts.hostname = this._parts.hostname.replace(replace, v);\n } else {\n throw new TypeError('TLD \"' + v + '\" contains characters other than [A-Z0-9]');\n }\n } else if (!this._parts.hostname || this.is('IP')) {\n throw new ReferenceError('cannot set TLD on non-domain host');\n } else {\n replace = new RegExp(escapeRegEx(this.tld()) + '$');\n this._parts.hostname = this._parts.hostname.replace(replace, v);\n }\n\n this.build(!build);\n return this;\n }\n };\n p.directory = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined || v === true) {\n if (!this._parts.path && !this._parts.hostname) {\n return '';\n }\n\n if (this._parts.path === '/') {\n return '/';\n }\n\n var end = this._parts.path.length - this.filename().length - 1;\n var res = this._parts.path.substring(0, end) || (this._parts.hostname ? '/' : '');\n\n return v ? URI.decodePath(res) : res;\n\n } else {\n var e = this._parts.path.length - this.filename().length;\n var directory = this._parts.path.substring(0, e);\n var replace = new RegExp('^' + escapeRegEx(directory));\n\n // fully qualifier directories begin with a slash\n if (!this.is('relative')) {\n if (!v) {\n v = '/';\n }\n\n if (v.charAt(0) !== '/') {\n v = '/' + v;\n }\n }\n\n // directories always end with a slash\n if (v && v.charAt(v.length - 1) !== '/') {\n v += '/';\n }\n\n v = URI.recodePath(v);\n this._parts.path = this._parts.path.replace(replace, v);\n this.build(!build);\n return this;\n }\n };\n p.filename = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (typeof v !== 'string') {\n if (!this._parts.path || this._parts.path === '/') {\n return '';\n }\n\n var pos = this._parts.path.lastIndexOf('/');\n var res = this._parts.path.substring(pos+1);\n\n return v ? URI.decodePathSegment(res) : res;\n } else {\n var mutatedDirectory = false;\n\n if (v.charAt(0) === '/') {\n v = v.substring(1);\n }\n\n if (v.match(/\\.?\\//)) {\n mutatedDirectory = true;\n }\n\n var replace = new RegExp(escapeRegEx(this.filename()) + '$');\n v = URI.recodePath(v);\n this._parts.path = this._parts.path.replace(replace, v);\n\n if (mutatedDirectory) {\n this.normalizePath(build);\n } else {\n this.build(!build);\n }\n\n return this;\n }\n };\n p.suffix = function(v, build) {\n if (this._parts.urn) {\n return v === undefined ? '' : this;\n }\n\n if (v === undefined || v === true) {\n if (!this._parts.path || this._parts.path === '/') {\n return '';\n }\n\n var filename = this.filename();\n var pos = filename.lastIndexOf('.');\n var s, res;\n\n if (pos === -1) {\n return '';\n }\n\n // suffix may only contain alnum characters (yup, I made this up.)\n s = filename.substring(pos+1);\n res = (/^[a-z0-9%]+$/i).test(s) ? s : '';\n return v ? URI.decodePathSegment(res) : res;\n } else {\n if (v.charAt(0) === '.') {\n v = v.substring(1);\n }\n\n var suffix = this.suffix();\n var replace;\n\n if (!suffix) {\n if (!v) {\n return this;\n }\n\n this._parts.path += '.' + URI.recodePath(v);\n } else if (!v) {\n replace = new RegExp(escapeRegEx('.' + suffix) + '$');\n } else {\n replace = new RegExp(escapeRegEx(suffix) + '$');\n }\n\n if (replace) {\n v = URI.recodePath(v);\n this._parts.path = this._parts.path.replace(replace, v);\n }\n\n this.build(!build);\n return this;\n }\n };\n p.segment = function(segment, v, build) {\n var separator = this._parts.urn ? ':' : '/';\n var path = this.path();\n var absolute = path.substring(0, 1) === '/';\n var segments = path.split(separator);\n\n if (segment !== undefined && typeof segment !== 'number') {\n build = v;\n v = segment;\n segment = undefined;\n }\n\n if (segment !== undefined && typeof segment !== 'number') {\n throw new Error('Bad segment \"' + segment + '\", must be 0-based integer');\n }\n\n if (absolute) {\n segments.shift();\n }\n\n if (segment < 0) {\n // allow negative indexes to address from the end\n segment = Math.max(segments.length + segment, 0);\n }\n\n if (v === undefined) {\n /*jshint laxbreak: true */\n return segment === undefined\n ? segments\n : segments[segment];\n /*jshint laxbreak: false */\n } else if (segment === null || segments[segment] === undefined) {\n if (isArray(v)) {\n segments = [];\n // collapse empty elements within array\n for (var i=0, l=v.length; i < l; i++) {\n if (!v[i].length && (!segments.length || !segments[segments.length -1].length)) {\n continue;\n }\n\n if (segments.length && !segments[segments.length -1].length) {\n segments.pop();\n }\n\n segments.push(trimSlashes(v[i]));\n }\n } else if (v || typeof v === 'string') {\n v = trimSlashes(v);\n if (segments[segments.length -1] === '') {\n // empty trailing elements have to be overwritten\n // to prevent results such as /foo//bar\n segments[segments.length -1] = v;\n } else {\n segments.push(v);\n }\n }\n } else {\n if (v) {\n segments[segment] = trimSlashes(v);\n } else {\n segments.splice(segment, 1);\n }\n }\n\n if (absolute) {\n segments.unshift('');\n }\n\n return this.path(segments.join(separator), build);\n };\n p.segmentCoded = function(segment, v, build) {\n var segments, i, l;\n\n if (typeof segment !== 'number') {\n build = v;\n v = segment;\n segment = undefined;\n }\n\n if (v === undefined) {\n segments = this.segment(segment, v, build);\n if (!isArray(segments)) {\n segments = segments !== undefined ? URI.decode(segments) : undefined;\n } else {\n for (i = 0, l = segments.length; i < l; i++) {\n segments[i] = URI.decode(segments[i]);\n }\n }\n\n return segments;\n }\n\n if (!isArray(v)) {\n v = (typeof v === 'string' || v instanceof String) ? URI.encode(v) : v;\n } else {\n for (i = 0, l = v.length; i < l; i++) {\n v[i] = URI.encode(v[i]);\n }\n }\n\n return this.segment(segment, v, build);\n };\n\n // mutating query string\n var q = p.query;\n p.query = function(v, build) {\n if (v === true) {\n return URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n } else if (typeof v === 'function') {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n var result = v.call(this, data);\n this._parts.query = URI.buildQuery(result || data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n this.build(!build);\n return this;\n } else if (v !== undefined && typeof v !== 'string') {\n this._parts.query = URI.buildQuery(v, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n this.build(!build);\n return this;\n } else {\n return q.call(this, v, build);\n }\n };\n p.setQuery = function(name, value, build) {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n\n if (typeof name === 'string' || name instanceof String) {\n data[name] = value !== undefined ? value : null;\n } else if (typeof name === 'object') {\n for (var key in name) {\n if (hasOwn.call(name, key)) {\n data[key] = name[key];\n }\n }\n } else {\n throw new TypeError('URI.addQuery() accepts an object, string as the name parameter');\n }\n\n this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n if (typeof name !== 'string') {\n build = value;\n }\n\n this.build(!build);\n return this;\n };\n p.addQuery = function(name, value, build) {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n URI.addQuery(data, name, value === undefined ? null : value);\n this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n if (typeof name !== 'string') {\n build = value;\n }\n\n this.build(!build);\n return this;\n };\n p.removeQuery = function(name, value, build) {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n URI.removeQuery(data, name, value);\n this._parts.query = URI.buildQuery(data, this._parts.duplicateQueryParameters, this._parts.escapeQuerySpace);\n if (typeof name !== 'string') {\n build = value;\n }\n\n this.build(!build);\n return this;\n };\n p.hasQuery = function(name, value, withinArray) {\n var data = URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace);\n return URI.hasQuery(data, name, value, withinArray);\n };\n p.setSearch = p.setQuery;\n p.addSearch = p.addQuery;\n p.removeSearch = p.removeQuery;\n p.hasSearch = p.hasQuery;\n\n // sanitizing URLs\n p.normalize = function() {\n if (this._parts.urn) {\n return this\n .normalizeProtocol(false)\n .normalizePath(false)\n .normalizeQuery(false)\n .normalizeFragment(false)\n .build();\n }\n\n return this\n .normalizeProtocol(false)\n .normalizeHostname(false)\n .normalizePort(false)\n .normalizePath(false)\n .normalizeQuery(false)\n .normalizeFragment(false)\n .build();\n };\n p.normalizeProtocol = function(build) {\n if (typeof this._parts.protocol === 'string') {\n this._parts.protocol = this._parts.protocol.toLowerCase();\n this.build(!build);\n }\n\n return this;\n };\n p.normalizeHostname = function(build) {\n if (this._parts.hostname) {\n if (this.is('IDN') && punycode) {\n this._parts.hostname = punycode.toASCII(this._parts.hostname);\n } else if (this.is('IPv6') && IPv6) {\n this._parts.hostname = IPv6.best(this._parts.hostname);\n }\n\n this._parts.hostname = this._parts.hostname.toLowerCase();\n this.build(!build);\n }\n\n return this;\n };\n p.normalizePort = function(build) {\n // remove port of it's the protocol's default\n if (typeof this._parts.protocol === 'string' && this._parts.port === URI.defaultPorts[this._parts.protocol]) {\n this._parts.port = null;\n this.build(!build);\n }\n\n return this;\n };\n p.normalizePath = function(build) {\n var _path = this._parts.path;\n if (!_path) {\n return this;\n }\n\n if (this._parts.urn) {\n this._parts.path = URI.recodeUrnPath(this._parts.path);\n this.build(!build);\n return this;\n }\n\n if (this._parts.path === '/') {\n return this;\n }\n\n _path = URI.recodePath(_path);\n\n var _was_relative;\n var _leadingParents = '';\n var _parent, _pos;\n\n // handle relative paths\n if (_path.charAt(0) !== '/') {\n _was_relative = true;\n _path = '/' + _path;\n }\n\n // handle relative files (as opposed to directories)\n if (_path.slice(-3) === '/..' || _path.slice(-2) === '/.') {\n _path += '/';\n }\n\n // resolve simples\n _path = _path\n .replace(/(\\/(\\.\\/)+)|(\\/\\.$)/g, '/')\n .replace(/\\/{2,}/g, '/');\n\n // remember leading parents\n if (_was_relative) {\n _leadingParents = _path.substring(1).match(/^(\\.\\.\\/)+/) || '';\n if (_leadingParents) {\n _leadingParents = _leadingParents[0];\n }\n }\n\n // resolve parents\n while (true) {\n _parent = _path.search(/\\/\\.\\.(\\/|$)/);\n if (_parent === -1) {\n // no more ../ to resolve\n break;\n } else if (_parent === 0) {\n // top level cannot be relative, skip it\n _path = _path.substring(3);\n continue;\n }\n\n _pos = _path.substring(0, _parent).lastIndexOf('/');\n if (_pos === -1) {\n _pos = _parent;\n }\n _path = _path.substring(0, _pos) + _path.substring(_parent + 3);\n }\n\n // revert to relative\n if (_was_relative && this.is('relative')) {\n _path = _leadingParents + _path.substring(1);\n }\n\n this._parts.path = _path;\n this.build(!build);\n return this;\n };\n p.normalizePathname = p.normalizePath;\n p.normalizeQuery = function(build) {\n if (typeof this._parts.query === 'string') {\n if (!this._parts.query.length) {\n this._parts.query = null;\n } else {\n this.query(URI.parseQuery(this._parts.query, this._parts.escapeQuerySpace));\n }\n\n this.build(!build);\n }\n\n return this;\n };\n p.normalizeFragment = function(build) {\n if (!this._parts.fragment) {\n this._parts.fragment = null;\n this.build(!build);\n }\n\n return this;\n };\n p.normalizeSearch = p.normalizeQuery;\n p.normalizeHash = p.normalizeFragment;\n\n p.iso8859 = function() {\n // expect unicode input, iso8859 output\n var e = URI.encode;\n var d = URI.decode;\n\n URI.encode = escape;\n URI.decode = decodeURIComponent;\n try {\n this.normalize();\n } finally {\n URI.encode = e;\n URI.decode = d;\n }\n return this;\n };\n\n p.unicode = function() {\n // expect iso8859 input, unicode output\n var e = URI.encode;\n var d = URI.decode;\n\n URI.encode = strictEncodeURIComponent;\n URI.decode = unescape;\n try {\n this.normalize();\n } finally {\n URI.encode = e;\n URI.decode = d;\n }\n return this;\n };\n\n p.readable = function() {\n var uri = this.clone();\n // removing username, password, because they shouldn't be displayed according to RFC 3986\n uri.username('').password('').normalize();\n var t = '';\n if (uri._parts.protocol) {\n t += uri._parts.protocol + '://';\n }\n\n if (uri._parts.hostname) {\n if (uri.is('punycode') && punycode) {\n t += punycode.toUnicode(uri._parts.hostname);\n if (uri._parts.port) {\n t += ':' + uri._parts.port;\n }\n } else {\n t += uri.host();\n }\n }\n\n if (uri._parts.hostname && uri._parts.path && uri._parts.path.charAt(0) !== '/') {\n t += '/';\n }\n\n t += uri.path(true);\n if (uri._parts.query) {\n var q = '';\n for (var i = 0, qp = uri._parts.query.split('&'), l = qp.length; i < l; i++) {\n var kv = (qp[i] || '').split('=');\n q += '&' + URI.decodeQuery(kv[0], this._parts.escapeQuerySpace)\n .replace(/&/g, '%26');\n\n if (kv[1] !== undefined) {\n q += '=' + URI.decodeQuery(kv[1], this._parts.escapeQuerySpace)\n .replace(/&/g, '%26');\n }\n }\n t += '?' + q.substring(1);\n }\n\n t += URI.decodeQuery(uri.hash(), true);\n return t;\n };\n\n // resolving relative and absolute URLs\n p.absoluteTo = function(base) {\n var resolved = this.clone();\n var properties = ['protocol', 'username', 'password', 'hostname', 'port'];\n var basedir, i, p;\n\n if (this._parts.urn) {\n throw new Error('URNs do not have any generally defined hierarchical components');\n }\n\n if (!(base instanceof URI)) {\n base = new URI(base);\n }\n\n if (resolved._parts.protocol) {\n // Directly returns even if this._parts.hostname is empty.\n return resolved;\n } else {\n resolved._parts.protocol = base._parts.protocol;\n }\n\n if (this._parts.hostname) {\n return resolved;\n }\n\n for (i = 0; (p = properties[i]); i++) {\n resolved._parts[p] = base._parts[p];\n }\n\n if (!resolved._parts.path) {\n resolved._parts.path = base._parts.path;\n if (!resolved._parts.query) {\n resolved._parts.query = base._parts.query;\n }\n } else {\n if (resolved._parts.path.substring(-2) === '..') {\n resolved._parts.path += '/';\n }\n\n if (resolved.path().charAt(0) !== '/') {\n basedir = base.directory();\n basedir = basedir ? basedir : base.path().indexOf('/') === 0 ? '/' : '';\n resolved._parts.path = (basedir ? (basedir + '/') : '') + resolved._parts.path;\n resolved.normalizePath();\n }\n }\n\n resolved.build();\n return resolved;\n };\n p.relativeTo = function(base) {\n var relative = this.clone().normalize();\n var relativeParts, baseParts, common, relativePath, basePath;\n\n if (relative._parts.urn) {\n throw new Error('URNs do not have any generally defined hierarchical components');\n }\n\n base = new URI(base).normalize();\n relativeParts = relative._parts;\n baseParts = base._parts;\n relativePath = relative.path();\n basePath = base.path();\n\n if (relativePath.charAt(0) !== '/') {\n throw new Error('URI is already relative');\n }\n\n if (basePath.charAt(0) !== '/') {\n throw new Error('Cannot calculate a URI relative to another relative URI');\n }\n\n if (relativeParts.protocol === baseParts.protocol) {\n relativeParts.protocol = null;\n }\n\n if (relativeParts.username !== baseParts.username || relativeParts.password !== baseParts.password) {\n return relative.build();\n }\n\n if (relativeParts.protocol !== null || relativeParts.username !== null || relativeParts.password !== null) {\n return relative.build();\n }\n\n if (relativeParts.hostname === baseParts.hostname && relativeParts.port === baseParts.port) {\n relativeParts.hostname = null;\n relativeParts.port = null;\n } else {\n return relative.build();\n }\n\n if (relativePath === basePath) {\n relativeParts.path = '';\n return relative.build();\n }\n\n // determine common sub path\n common = URI.commonPath(relativePath, basePath);\n\n // If the paths have nothing in common, return a relative URL with the absolute path.\n if (!common) {\n return relative.build();\n }\n\n var parents = baseParts.path\n .substring(common.length)\n .replace(/[^\\/]*$/, '')\n .replace(/.*?\\//g, '../');\n\n relativeParts.path = (parents + relativeParts.path.substring(common.length)) || './';\n\n return relative.build();\n };\n\n // comparing URIs\n p.equals = function(uri) {\n var one = this.clone();\n var two = new URI(uri);\n var one_map = {};\n var two_map = {};\n var checked = {};\n var one_query, two_query, key;\n\n one.normalize();\n two.normalize();\n\n // exact match\n if (one.toString() === two.toString()) {\n return true;\n }\n\n // extract query string\n one_query = one.query();\n two_query = two.query();\n one.query('');\n two.query('');\n\n // definitely not equal if not even non-query parts match\n if (one.toString() !== two.toString()) {\n return false;\n }\n\n // query parameters have the same length, even if they're permuted\n if (one_query.length !== two_query.length) {\n return false;\n }\n\n one_map = URI.parseQuery(one_query, this._parts.escapeQuerySpace);\n two_map = URI.parseQuery(two_query, this._parts.escapeQuerySpace);\n\n for (key in one_map) {\n if (hasOwn.call(one_map, key)) {\n if (!isArray(one_map[key])) {\n if (one_map[key] !== two_map[key]) {\n return false;\n }\n } else if (!arraysEqual(one_map[key], two_map[key])) {\n return false;\n }\n\n checked[key] = true;\n }\n }\n\n for (key in two_map) {\n if (hasOwn.call(two_map, key)) {\n if (!checked[key]) {\n // two contains a parameter not present in one\n return false;\n }\n }\n }\n\n return true;\n };\n\n // state\n p.preventInvalidHostname = function(v) {\n this._parts.preventInvalidHostname = !!v;\n return this;\n };\n\n p.duplicateQueryParameters = function(v) {\n this._parts.duplicateQueryParameters = !!v;\n return this;\n };\n\n p.escapeQuerySpace = function(v) {\n this._parts.escapeQuerySpace = !!v;\n return this;\n };\n\n return URI;\n}));\n","import { ImageStyle } from 'react-native';\nimport { WebBlockStyles } from '@native-html/transient-render-engine';\n\nimport pick from 'ramda/src/pick';\n\nconst extractProps = pick([\n 'resizeMode',\n 'tintColor',\n 'overlayColor'\n]);\n\nfunction mapObjectFit(objectFit: WebBlockStyles['objectFit']) {\n let resizeMode: ImageStyle['resizeMode'];\n switch (objectFit) {\n case 'contain':\n case 'cover':\n resizeMode = objectFit;\n break;\n case 'fill':\n resizeMode = 'stretch';\n break;\n case 'scale-down':\n resizeMode = 'contain';\n break;\n default:\n return null;\n }\n return { resizeMode };\n}\n\nfunction extractImageStyleProps(\n style: any,\n objectFit?: WebBlockStyles['objectFit']\n) {\n const resizeModeFromFit = objectFit ? mapObjectFit(objectFit) : null;\n return {\n ...extractProps(style),\n ...resizeModeFromFit\n };\n}\n\nexport default extractImageStyleProps;\n","export default function getDimensionsWithAspectRatio(\n width: number | null,\n height: number | null,\n aspectRatio: number | undefined\n) {\n return {\n width: width ?? (aspectRatio && height ? height * aspectRatio : null),\n height: height ?? (aspectRatio && width ? width / aspectRatio : null)\n };\n}\n","import React from 'react';\nimport { Text } from 'react-native';\nimport { TPhrasing, TText } from '@native-html/transient-render-engine';\nimport { TDefaultRendererProps } from './shared-types';\nimport getNativePropsForTNode from './helpers/getNativePropsForTNode';\n\nconst renderTextualContent = (\n props: TDefaultRendererProps\n) => {\n return React.createElement(Text, getNativePropsForTNode(props));\n};\n\nexport default renderTextualContent;\n","import React from 'react';\nimport { TDefaultRendererProps } from './shared-types';\nimport GenericPressable from './GenericPressable';\nimport getNativePropsForTNode from './helpers/getNativePropsForTNode';\nimport { View } from 'react-native';\nimport { TBlock } from '@native-html/transient-render-engine';\n\nfunction renderBlockContent(props: TDefaultRendererProps) {\n const nativeProps = getNativePropsForTNode(props);\n return React.createElement(\n typeof nativeProps.onPress === 'function' ? GenericPressable : View,\n nativeProps\n );\n}\nexport default renderBlockContent;\n","import { TNode } from '@native-html/transient-render-engine';\nimport { TNodeSubRendererProps } from './internal-types';\n\nfunction renderEmptyContent({ tnode }: TNodeSubRendererProps) {\n if (typeof __DEV__ !== 'undefined' && __DEV__) {\n if (tnode.isUnregistered) {\n console.warn(\n `There is no custom renderer registered for tag \"${tnode.tagName}\" which is not part of the HTML5 standard. The tag will not be rendered.` +\n ' If you don\\'t want this tag to be rendered, add it to \"ignoredDomTags\" prop array. If you do, register an HTMLElementModel for this tag with \"customHTMLElementModels\" prop.'\n );\n } else if (tnode.tagName !== 'head') {\n console.warn(\n `The \"${tnode.tagName}\" tag is a valid HTML element but is not handled by this library. You must extend the default HTMLElementModel for this tag with \"customHTMLElementModels\" prop and make sure its content model is not set to \"none\".` +\n ' If you don\\'t want this tag to be rendered, add it to \"ignoredDomTags\" prop array.'\n );\n }\n }\n return null;\n}\n\nexport default renderEmptyContent;\n","import { TNode } from '@native-html/transient-render-engine';\n\n/**\n * Compute a TNode top margin to satisfy requirements expressed in CSS\n * standard regarding margin collapsing.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Box_Model/Mastering_margin_collapsing\n * for a reference.\n *\n * @param precedent - The node above the one for which we need to compute top margin.\n * @param current - The node for which a margin top might collapse.\n */\nexport default function getCollapsedMarginTop(\n precedent: TNode,\n current: TNode\n): null | number {\n const topMostMarginBottom =\n typeof precedent.styles.nativeBlockRet.marginBottom === 'number'\n ? precedent.styles.nativeBlockRet.marginBottom\n : null;\n const bottomMostMarginTop =\n typeof current.styles.nativeBlockRet.marginTop === 'number'\n ? current.styles.nativeBlockRet.marginTop\n : null;\n if (topMostMarginBottom == null || bottomMostMarginTop == null) {\n return null;\n }\n if (topMostMarginBottom < 0 && bottomMostMarginTop < 0) {\n return (\n Math.min(topMostMarginBottom, bottomMostMarginTop) - topMostMarginBottom\n );\n }\n if (topMostMarginBottom < 0 || bottomMostMarginTop < 0) {\n return topMostMarginBottom + bottomMostMarginTop - topMostMarginBottom;\n }\n if (topMostMarginBottom > bottomMostMarginTop) {\n return 0;\n }\n return bottomMostMarginTop - topMostMarginBottom;\n}\n","var _curry2 =\n/*#__PURE__*/\nrequire(\"./internal/_curry2\");\n\nvar _equals =\n/*#__PURE__*/\nrequire(\"./internal/_equals\");\n/**\n * Returns `true` if its arguments are equivalent, `false` otherwise. Handles\n * cyclical data structures.\n *\n * Dispatches symmetrically to the `equals` methods of both arguments, if\n * present.\n *\n * @func\n * @memberOf R\n * @since v0.15.0\n * @category Relation\n * @sig a -> b -> Boolean\n * @param {*} a\n * @param {*} b\n * @return {Boolean}\n * @example\n *\n * R.equals(1, 1); //=> true\n * R.equals(1, '1'); //=> false\n * R.equals([1, 2, 3], [1, 2, 3]); //=> true\n *\n * const a = {}; a.v = a;\n * const b = {}; b.v = b;\n * R.equals(a, b); //=> true\n */\n\n\nvar equals =\n/*#__PURE__*/\n_curry2(function equals(a, b) {\n return _equals(a, b, [], []);\n});\n\nmodule.exports = equals;","var _arrayFromIterator =\n/*#__PURE__*/\nrequire(\"./_arrayFromIterator\");\n\nvar _includesWith =\n/*#__PURE__*/\nrequire(\"./_includesWith\");\n\nvar _functionName =\n/*#__PURE__*/\nrequire(\"./_functionName\");\n\nvar _has =\n/*#__PURE__*/\nrequire(\"./_has\");\n\nvar _objectIs =\n/*#__PURE__*/\nrequire(\"./_objectIs\");\n\nvar keys =\n/*#__PURE__*/\nrequire(\"../keys\");\n\nvar type =\n/*#__PURE__*/\nrequire(\"../type\");\n/**\n * private _uniqContentEquals function.\n * That function is checking equality of 2 iterator contents with 2 assumptions\n * - iterators lengths are the same\n * - iterators values are unique\n *\n * false-positive result will be returned for comparision of, e.g.\n * - [1,2,3] and [1,2,3,4]\n * - [1,1,1] and [1,2,3]\n * */\n\n\nfunction _uniqContentEquals(aIterator, bIterator, stackA, stackB) {\n var a = _arrayFromIterator(aIterator);\n\n var b = _arrayFromIterator(bIterator);\n\n function eq(_a, _b) {\n return _equals(_a, _b, stackA.slice(), stackB.slice());\n } // if *a* array contains any element that is not included in *b*\n\n\n return !_includesWith(function (b, aItem) {\n return !_includesWith(eq, aItem, b);\n }, b, a);\n}\n\nfunction _equals(a, b, stackA, stackB) {\n if (_objectIs(a, b)) {\n return true;\n }\n\n var typeA = type(a);\n\n if (typeA !== type(b)) {\n return false;\n }\n\n if (a == null || b == null) {\n return false;\n }\n\n if (typeof a['fantasy-land/equals'] === 'function' || typeof b['fantasy-land/equals'] === 'function') {\n return typeof a['fantasy-land/equals'] === 'function' && a['fantasy-land/equals'](b) && typeof b['fantasy-land/equals'] === 'function' && b['fantasy-land/equals'](a);\n }\n\n if (typeof a.equals === 'function' || typeof b.equals === 'function') {\n return typeof a.equals === 'function' && a.equals(b) && typeof b.equals === 'function' && b.equals(a);\n }\n\n switch (typeA) {\n case 'Arguments':\n case 'Array':\n case 'Object':\n if (typeof a.constructor === 'function' && _functionName(a.constructor) === 'Promise') {\n return a === b;\n }\n\n break;\n\n case 'Boolean':\n case 'Number':\n case 'String':\n if (!(typeof a === typeof b && _objectIs(a.valueOf(), b.valueOf()))) {\n return false;\n }\n\n break;\n\n case 'Date':\n if (!_objectIs(a.valueOf(), b.valueOf())) {\n return false;\n }\n\n break;\n\n case 'Error':\n return a.name === b.name && a.message === b.message;\n\n case 'RegExp':\n if (!(a.source === b.source && a.global === b.global && a.ignoreCase === b.ignoreCase && a.multiline === b.multiline && a.sticky === b.sticky && a.unicode === b.unicode)) {\n return false;\n }\n\n break;\n }\n\n var idx = stackA.length - 1;\n\n while (idx >= 0) {\n if (stackA[idx] === a) {\n return stackB[idx] === b;\n }\n\n idx -= 1;\n }\n\n switch (typeA) {\n case 'Map':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.entries(), b.entries(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Set':\n if (a.size !== b.size) {\n return false;\n }\n\n return _uniqContentEquals(a.values(), b.values(), stackA.concat([a]), stackB.concat([b]));\n\n case 'Arguments':\n case 'Array':\n case 'Object':\n case 'Boolean':\n case 'Number':\n case 'String':\n case 'Date':\n case 'Error':\n case 'RegExp':\n case 'Int8Array':\n case 'Uint8Array':\n case 'Uint8ClampedArray':\n case 'Int16Array':\n case 'Uint16Array':\n case 'Int32Array':\n case 'Uint32Array':\n case 'Float32Array':\n case 'Float64Array':\n case 'ArrayBuffer':\n break;\n\n default:\n // Values of other types are only equal if identical.\n return false;\n }\n\n var keysA = keys(a);\n\n if (keysA.length !== keys(b).length) {\n return false;\n }\n\n var extendedStackA = stackA.concat([a]);\n var extendedStackB = stackB.concat([b]);\n idx = keysA.length - 1;\n\n while (idx >= 0) {\n var key = keysA[idx];\n\n if (!(_has(key, b) && _equals(b[key], a[key], extendedStackA, extendedStackB))) {\n return false;\n }\n\n idx -= 1;\n }\n\n return true;\n}\n\nmodule.exports = _equals;","function _arrayFromIterator(iter) {\n var list = [];\n var next;\n\n while (!(next = iter.next()).done) {\n list.push(next.value);\n }\n\n return list;\n}\n\nmodule.exports = _arrayFromIterator;","function _includesWith(pred, x, list) {\n var idx = 0;\n var len = list.length;\n\n while (idx < len) {\n if (pred(x, list[idx])) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n}\n\nmodule.exports = _includesWith;","function _functionName(f) {\n // String(x => x) evaluates to \"x => x\", so the pattern may not match.\n var match = String(f).match(/^function (\\w*)/);\n return match == null ? '' : match[1];\n}\n\nmodule.exports = _functionName;","// Based on https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction _objectIs(a, b) {\n // SameValue algorithm\n if (a === b) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return a !== 0 || 1 / a === 1 / b;\n } else {\n // Step 6.a: NaN == NaN\n return a !== a && b !== b;\n }\n}\n\nmodule.exports = typeof Object.is === 'function' ? Object.is : _objectIs;","var _curry1 =\n/*#__PURE__*/\nrequire(\"./internal/_curry1\");\n\nvar _has =\n/*#__PURE__*/\nrequire(\"./internal/_has\");\n\nvar _isArguments =\n/*#__PURE__*/\nrequire(\"./internal/_isArguments\"); // cover IE < 9 keys issues\n\n\nvar hasEnumBug = !\n/*#__PURE__*/\n{\n toString: null\n}.propertyIsEnumerable('toString');\nvar nonEnumerableProps = ['constructor', 'valueOf', 'isPrototypeOf', 'toString', 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString']; // Safari bug\n\nvar hasArgsEnumBug =\n/*#__PURE__*/\nfunction () {\n 'use strict';\n\n return arguments.propertyIsEnumerable('length');\n}();\n\nvar contains = function contains(list, item) {\n var idx = 0;\n\n while (idx < list.length) {\n if (list[idx] === item) {\n return true;\n }\n\n idx += 1;\n }\n\n return false;\n};\n/**\n * Returns a list containing the names of all the enumerable own properties of\n * the supplied object.\n * Note that the order of the output array is not guaranteed to be consistent\n * across different JS platforms.\n *\n * @func\n * @memberOf R\n * @since v0.1.0\n * @category Object\n * @sig {k: v} -> [k]\n * @param {Object} obj The object to extract properties from\n * @return {Array} An array of the object's own properties.\n * @see R.keysIn, R.values\n * @example\n *\n * R.keys({a: 1, b: 2, c: 3}); //=> ['a', 'b', 'c']\n */\n\n\nvar keys = typeof Object.keys === 'function' && !hasArgsEnumBug ?\n/*#__PURE__*/\n_curry1(function keys(obj) {\n return Object(obj) !== obj ? [] : Object.keys(obj);\n}) :\n/*#__PURE__*/\n_curry1(function keys(obj) {\n if (Object(obj) !== obj) {\n return [];\n }\n\n var prop, nIdx;\n var ks = [];\n\n var checkArgsLength = hasArgsEnumBug && _isArguments(obj);\n\n for (prop in obj) {\n if (_has(prop, obj) && (!checkArgsLength || prop !== 'length')) {\n ks[ks.length] = prop;\n }\n }\n\n if (hasEnumBug) {\n nIdx = nonEnumerableProps.length - 1;\n\n while (nIdx >= 0) {\n prop = nonEnumerableProps[nIdx];\n\n if (_has(prop, obj) && !contains(ks, prop)) {\n ks[ks.length] = prop;\n }\n\n nIdx -= 1;\n }\n }\n\n return ks;\n});\nmodule.exports = keys;","var _has =\n/*#__PURE__*/\nrequire(\"./_has\");\n\nvar toString = Object.prototype.toString;\n\nvar _isArguments =\n/*#__PURE__*/\nfunction () {\n return toString.call(arguments) === '[object Arguments]' ? function _isArguments(x) {\n return toString.call(x) === '[object Arguments]';\n } : function _isArguments(x) {\n return _has('callee', x);\n };\n}();\n\nmodule.exports = _isArguments;","var _curry1 =\n/*#__PURE__*/\nrequire(\"./internal/_curry1\");\n/**\n * Gives a single-word string description of the (native) type of a value,\n * returning such answers as 'Object', 'Number', 'Array', or 'Null'. Does not\n * attempt to distinguish user Object types any further, reporting them all as\n * 'Object'.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Type\n * @sig (* -> {*}) -> String\n * @param {*} val The value to test\n * @return {String}\n * @example\n *\n * R.type({}); //=> \"Object\"\n * R.type(1); //=> \"Number\"\n * R.type(false); //=> \"Boolean\"\n * R.type('s'); //=> \"String\"\n * R.type(null); //=> \"Null\"\n * R.type([]); //=> \"Array\"\n * R.type(/[A-z]/); //=> \"RegExp\"\n * R.type(() => {}); //=> \"Function\"\n * R.type(undefined); //=> \"Undefined\"\n */\n\n\nvar type =\n/*#__PURE__*/\n_curry1(function type(val) {\n return val === null ? 'Null' : val === undefined ? 'Undefined' : Object.prototype.toString.call(val).slice(8, -1);\n});\n\nmodule.exports = type;","import { HTMLSource, HTMLSourceUri } from '../shared-types';\n\nexport default function isUriSource(\n source: HTMLSource\n): source is HTMLSourceUri {\n return 'uri' in source && typeof source.uri === 'string';\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport { HTMLSourceUri } from './shared-types';\nimport { SourceLoaderProps } from './internal-types';\nimport RenderTTree from './RenderTTree';\nimport sourceLoaderContext from './context/sourceLoaderContext';\n\ninterface LoaderInternalState {\n error: boolean;\n resolvedHTML: string | null;\n}\n\nconst ERROR_STATE = {\n error: true,\n resolvedHTML: null\n};\n\nasync function loadHTMLResource(\n uri: string,\n { body, headers, method }: Omit\n): Promise {\n const response = await fetch(uri, {\n body,\n headers,\n method\n });\n if (response.ok) {\n const html = await response.text();\n return {\n resolvedHTML: html,\n error: false\n };\n }\n return ERROR_STATE;\n}\n\nexport type UriSourceLoaderProps = {\n source: HTMLSourceUri;\n} & SourceLoaderProps;\n\nfunction useUriSourceLoader({ source, onHTMLLoaded }: UriSourceLoaderProps) {\n const [loadState, setState] = useState({\n error: false,\n resolvedHTML: null\n });\n const { error } = loadState;\n\n // Effect to reload on uri changes\n useEffect(() => {\n let cancelled = false;\n if (!error) {\n setState({ error: false, resolvedHTML: null });\n loadHTMLResource(source.uri, {\n body: source.body,\n headers: source.headers,\n method: source.method\n })\n .then((state) => {\n !cancelled && setState(state);\n })\n .catch(() => {\n !cancelled && setState(ERROR_STATE);\n });\n }\n return () => {\n cancelled = true;\n };\n }, [error, source.uri, source.body, source.headers, source.method]);\n useEffect(() => {\n loadState.resolvedHTML && onHTMLLoaded?.call(null, loadState.resolvedHTML);\n }, [loadState.resolvedHTML, onHTMLLoaded]);\n return loadState;\n}\n\nexport default function SourceLoaderUri(props: UriSourceLoaderProps) {\n const { remoteErrorView, remoteLoadingView } =\n useContext(sourceLoaderContext);\n const { resolvedHTML, error } = useUriSourceLoader(props);\n if (error) {\n return remoteErrorView.call(null, props.source);\n }\n if (resolvedHTML === null) {\n return remoteLoadingView.call(null, props.source);\n }\n return React.createElement(RenderTTree, {\n document: resolvedHTML!,\n baseUrl: props.source.uri\n });\n}\n","import { useMemo, useEffect, useRef, useContext } from 'react';\nimport ttreeEventsContext from '../context/ttreeEventsContext';\nimport { useSharedProps } from '../context/SharedPropsProvider';\nimport { RenderTTreeProps } from '../internal-types';\nimport { useAmbientTRenderEngine } from '../TRenderEngineProvider';\nimport { TDocument } from '@native-html/transient-render-engine';\n\nfunction useTTreeChangeEffect(ttree: TDocument) {\n const { onTTreeChange } = useContext(ttreeEventsContext);\n const { debug } = useSharedProps();\n const updateNumber = useRef(0);\n useEffect(() => {\n onTTreeChange?.call(null, ttree);\n if (debug && typeof __DEV__ === 'boolean' && __DEV__) {\n console.info(\n `Transient Render Tree update ${++updateNumber.current}:\\n${ttree.snapshot(\n {\n withNodeIndex: false,\n withStyles: false\n }\n )}`\n );\n }\n }, [ttree, onTTreeChange, debug]);\n}\n\n/**\n * @internal\n */\nexport default function useTTree(props: RenderTTreeProps) {\n const { document } = props;\n const trenderEngine = useAmbientTRenderEngine();\n const ttree = useMemo(\n () =>\n typeof document === 'string'\n ? trenderEngine.buildTTree(document)\n : trenderEngine.buildTTreeFromDoc(document),\n [document, trenderEngine]\n );\n useTTreeChangeEffect(ttree);\n return ttree;\n}\n","import React, { memo, useEffect, useMemo } from 'react';\nimport { TDocument } from '@native-html/transient-render-engine';\nimport { DocumentMetadata, RenderHTMLSourceProps } from './shared-types';\nimport DocumentMetadataProvider from './context/DocumentMetadataProvider';\nimport TNodeRenderer from './TNodeRenderer';\n\nconst TDocumentRenderer = memo(\n ({\n tdoc,\n baseUrl,\n onDocumentMetadataLoaded\n }: {\n baseUrl?: string;\n onDocumentMetadataLoaded?: RenderHTMLSourceProps['onDocumentMetadataLoaded'];\n tdoc: TDocument;\n }) => {\n const metadata: DocumentMetadata = useMemo(() => {\n const { baseHref, baseTarget, lang, links, meta, title, dir } =\n tdoc.context;\n return {\n baseTarget,\n baseUrl: baseUrl ?? baseHref,\n lang,\n dir,\n links,\n meta,\n title\n };\n }, [tdoc.context, baseUrl]);\n useEffect(() => {\n onDocumentMetadataLoaded?.call(null, metadata);\n }, [onDocumentMetadataLoaded, metadata]);\n return (\n \n \n \n );\n }\n);\nexport default TDocumentRenderer;\n","import React, { useEffect } from 'react';\nimport { SourceLoaderProps } from './internal-types';\nimport RenderTTree from './RenderTTree';\nimport { HTMLSourceInline } from './shared-types';\n\nexport type InlineSourceLoaderProps = {\n source: HTMLSourceInline;\n} & SourceLoaderProps;\n\nfunction useInlineSourceLoader({\n source,\n onHTMLLoaded\n}: InlineSourceLoaderProps) {\n const html = source.html;\n useEffect(() => {\n html && onHTMLLoaded?.call(null, html);\n }, [html, onHTMLLoaded]);\n return source;\n}\n\nexport default function SourceLoaderInline(props: InlineSourceLoaderProps) {\n const { html } = useInlineSourceLoader(props);\n return React.createElement(RenderTTree, {\n document: html,\n baseUrl: props.source.baseUrl\n });\n}\n","import React from 'react';\nimport { SourceLoaderProps } from './internal-types';\nimport RenderTTree from './RenderTTree';\nimport { HTMLSourceDom } from './shared-types';\n\nexport type DomSourceLoaderProps = {\n source: HTMLSourceDom;\n} & SourceLoaderProps;\n\nexport default function SourceLoaderDom(props: DomSourceLoaderProps) {\n return React.createElement(RenderTTree, {\n document: props.source.dom,\n baseUrl: props.source.baseUrl\n });\n}\n","import { HTMLSource, HTMLSourceDom } from '../shared-types';\n\nexport default function isDomSource(\n source: HTMLSource\n): source is HTMLSourceDom {\n return 'dom' in source && typeof source.dom === 'object' && !!source.dom;\n}\n","import { TagName } from '@native-html/transient-render-engine';\nimport { ComponentType } from 'react';\nimport IMGElement from '../elements/IMGElement';\nimport OLElement from '../elements/OLElement';\nimport ULElement from '../elements/ULElement';\nimport { useAElementProps } from '../renderers/ARenderer';\nimport { useIMGElementProps } from '../renderers/IMGRenderer';\nimport { useOLElementProps } from '../renderers/OLRenderer';\nimport { useULElementProps } from '../renderers/ULRenderer';\nimport { InternalRendererProps, TDefaultRendererProps } from '../shared-types';\n\nconst specialRenderersConfig = {\n img: {\n hook: useIMGElementProps,\n Element: IMGElement\n },\n ol: {\n hook: useOLElementProps,\n Element: OLElement\n },\n ul: {\n hook: useULElementProps,\n Element: ULElement\n },\n a: {\n hook: useAElementProps,\n Element: undefined\n }\n};\n\nexport type InternalSpecialRenderedTag = keyof typeof specialRenderersConfig;\n\nfunction hasSpecialInternalRenderer(\n tagName: TagName\n): tagName is keyof typeof specialRenderersConfig {\n return tagName in specialRenderersConfig;\n}\n\nexport interface InternalRendererConfig

{\n Renderer: ComponentType

;\n rendererProps: P;\n}\n/**\n * Resuse internal renderers logic for infinite customization!\n *\n * @remarks `tagName` must be invariant, i.e. it cannot change. You would\n * otherwise break the rules of hooks.\n *\n * @param tagName - **Invariant** The tag name to extend.\n * @param props - The props passed to the custom renderer.\n * @typeParam T - The name of the tag to target.\n * @returns An object with two fields: `Renderer` (the internal react\n * component) and `rendererProps`, the internal component props.\n *\n * @public\n */\nexport default function useInternalRenderer(\n tagName: T,\n props: InternalRendererProps\n): T extends InternalSpecialRenderedTag\n ? InternalRendererConfig>\n : InternalRendererConfig> {\n const { TDefaultRenderer, ...rendererProps } = props;\n if (hasSpecialInternalRenderer(tagName)) {\n return {\n Renderer: specialRenderersConfig[tagName].Element || TDefaultRenderer,\n rendererProps: specialRenderersConfig[tagName].hook(props as any)\n } as any;\n }\n return {\n Renderer: TDefaultRenderer,\n rendererProps\n } as any;\n}\n","import pick from 'ramda/src/pick';\nimport omit from 'ramda/src/omit';\nimport { TNodeShape, TNodeType } from '@native-html/transient-render-engine';\n\nconst borderBoxProps = [\n 'backgroundColor',\n 'borderBottomColor',\n 'borderBottomLeftRadius',\n 'borderBottomRightRadius',\n 'borderBottomWidth',\n 'borderLeftColor',\n 'borderLeftWidth',\n 'borderRightColor',\n 'borderRightWidth',\n 'borderStyle',\n 'borderTopColor',\n 'borderTopLeftRadius',\n 'borderTopRightRadius',\n 'borderTopWidth',\n 'paddingBottom',\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'marginBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop'\n];\n\nconst pickBorderBox = pick(borderBoxProps);\nconst omitBorderBox = omit(borderBoxProps);\n\n/**\n * A utility to separate box model styles and other styles. Useful when one wants\n * to wrap a text element in a view to benefit from padding vertical,\n * borders... etc.\n *\n * @param styles - The native styles to split.\n */\nexport default function splitBoxModelStyle(\n style: ReturnType['getNativeStyles']>\n) {\n return {\n boxModelStyle: pickBorderBox(style),\n otherStyle: omitBorderBox(style)\n };\n}\n","import strigifyEntities from 'stringify-entities';\nimport {\n Node,\n isDomText,\n isDomElement\n} from '@native-html/transient-render-engine';\n\nfunction renderOpeningTag(tag: string, attributes: Record) {\n const strAttributes: string[] = [];\n Object.keys(attributes).forEach((key) => {\n strAttributes.push(`${key}=\"${strigifyEntities(`${attributes[key]}`)}\"`);\n });\n return `<${tag}${strAttributes.length ? ' ' : ''}${strAttributes.join(' ')}>`;\n}\n\n/**\n * Convert a DOM node to its HTML representation.\n *\n * @param root - The root to stringify.\n * @param reporter - An optional function which will receive every\n * parsed node as 1st argument, the depth as 2d argument and the converted html\n * as 3d argument.\n */\nexport default function domNodeToHTMLString(\n root: Node | null,\n reporter?: DomNodeToHtmlReporter,\n depth = 0\n) {\n let html = '';\n if (isDomElement(root)) {\n const strChildren = root.children.reduce((prev, curr) => {\n const convertedNode = domNodeToHTMLString(curr, reporter, depth + 1);\n return `${prev}${convertedNode}`;\n }, '');\n html = `${renderOpeningTag(root.tagName, root.attribs)}${strChildren}`;\n } else if (isDomText(root)) {\n const text = strigifyEntities(root.data);\n html = text;\n }\n typeof reporter === 'function' && reporter(root, depth, html);\n return html;\n}\n\n/**\n * @public\n */\nexport interface DomNodeToHtmlReporter {\n /**\n * @param node - The node being parsed.\n * @param depth - How many parents this node have.\n * @param html - The HTML representation of this node and its children.\n */\n (node: Node | null, depth: number, html: string): void;\n}\n","'use strict'\n\nmodule.exports = require('./lib')\n","'use strict'\n\nvar encode = require('./encode')\nvar escape = require('./escape')\n\nmodule.exports = encode\nencode.escape = escape\n","'use strict'\n\nvar xtend = require('xtend')\nvar core = require('./core')\nvar smart = require('./util/format-smart')\n\nmodule.exports = encode\n\n// Encode special characters in `value`.\nfunction encode(value, options) {\n // Note: Switch to `Object.assign` next major.\n return core(value, xtend(options, {format: smart}))\n}\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {}\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i]\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key]\n }\n }\n }\n\n return target\n}\n","module.exports = toHexReference\n\nvar fromCharCode = require('../constant/from-char-code')\n\n// Transform `code` into a hexadecimal character reference.\nfunction toHexReference(code, next, omit) {\n var value = '&#x' + code.toString(16).toUpperCase()\n return omit && next && !/[\\dA-Fa-f]/.test(fromCharCode(next))\n ? value\n : value + ';'\n}\n","module.exports = toDecimalReference\n\nvar fromCharCode = require('../constant/from-char-code')\n\n// Transform `code` into a decimal character reference.\nfunction toDecimalReference(code, next, omit) {\n var value = '&#' + String(code)\n return omit && next && !/\\d/.test(fromCharCode(next)) ? value : value + ';'\n}\n","module.exports = toNamed\n\nvar legacy = require('character-entities-legacy')\nvar characters = require('../constant/characters')\nvar fromCharCode = require('../constant/from-char-code')\nvar own = require('../constant/has-own-property')\nvar dangerous = require('../constant/dangerous.json')\n\n// Transform `code` into a named character reference.\nfunction toNamed(code, next, omit, attribute) {\n var character = fromCharCode(code)\n var name\n var value\n\n if (own.call(characters, character)) {\n name = characters[character]\n value = '&' + name\n\n if (\n omit &&\n own.call(legacy, name) &&\n dangerous.indexOf(name) === -1 &&\n (!attribute ||\n (next && next !== 61 /* `=` */ && /[^\\da-z]/i.test(fromCharCode(next))))\n ) {\n return value\n }\n\n return value + ';'\n }\n\n return ''\n}\n","var entities = require('character-entities-html4')\n\nvar characters = {}\nvar name\n\nmodule.exports = characters\n\nfor (name in entities) {\n characters[entities[name]] = name\n}\n","module.exports = {}.hasOwnProperty\n","'use strict'\n\nvar core = require('./core')\nvar smart = require('./util/format-smart')\n\nmodule.exports = escape\n\n// Shortcut to escape special characters in HTML.\nfunction escape(value) {\n return core(value, {\n escapeOnly: true,\n useNamedReferences: true,\n format: smart\n })\n}\n","import defaultImageInitialDimensions from './defaultInitialImageDimensions';\nimport { getIMGState } from './getIMGState';\nimport type {\n UseIMGElementStateWithCacheProps,\n IMGElementStateError,\n IMGElementStateSuccess\n} from './img-types';\nimport useImageConcreteDimensions from './useImageConcreteDimensions';\nimport useImageSpecifiedDimensions from './useImageSpecifiedDimensions';\nimport useIMGNormalizedSource from './useIMGNormalizedSource';\n\n/**\n * This hook is useful when one has access to image natural dimensions prior to\n * loading. The `cachedNaturalDimensions` prop must be passed to immediately\n * compute concrete dimensions.\n */\nexport default function useIMGElementStateWithCache(\n props: UseIMGElementStateWithCacheProps\n): IMGElementStateError | IMGElementStateSuccess {\n const {\n alt,\n altColor,\n source,\n contentWidth,\n computeMaxWidth,\n objectFit,\n initialDimensions = defaultImageInitialDimensions,\n cachedNaturalDimensions\n } = props;\n const { flatStyle, specifiedDimensions } = useImageSpecifiedDimensions(props);\n const nomalizedSource = useIMGNormalizedSource({\n specifiedDimensions,\n source\n });\n const concreteDimensions = useImageConcreteDimensions({\n flatStyle,\n naturalDimensions: cachedNaturalDimensions,\n specifiedDimensions,\n computeMaxWidth,\n contentWidth\n });\n\n return getIMGState({\n error: null,\n concreteDimensions,\n containerStyle: flatStyle,\n initialDimensions,\n objectFit,\n source: nomalizedSource,\n alt,\n altColor\n });\n}\n","import _objectSpread from '@babel/runtime/helpers/objectSpread';\nimport _inheritsLoose from '@babel/runtime/helpers/inheritsLoose';\nimport _assertThisInitialized from '@babel/runtime/helpers/assertThisInitialized';\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nvar CANCEL_DISTANCE_ON_SCROLL = 20;\nvar defaultStyles = {\n root: {\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n overflow: \"hidden\"\n },\n sidebar: {\n zIndex: 2,\n position: \"absolute\",\n top: 0,\n bottom: 0,\n transition: \"transform .3s ease-out\",\n WebkitTransition: \"-webkit-transform .3s ease-out\",\n willChange: \"transform\",\n overflowY: \"auto\"\n },\n content: {\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n overflowY: \"auto\",\n WebkitOverflowScrolling: \"touch\",\n transition: \"left .3s ease-out, right .3s ease-out\"\n },\n overlay: {\n zIndex: 1,\n position: \"fixed\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n opacity: 0,\n visibility: \"hidden\",\n transition: \"opacity .3s ease-out, visibility .3s ease-out\",\n backgroundColor: \"rgba(0,0,0,.3)\"\n },\n dragHandle: {\n zIndex: 1,\n position: \"fixed\",\n top: 0,\n bottom: 0\n }\n};\n\nvar Sidebar =\n/*#__PURE__*/\nfunction (_Component) {\n _inheritsLoose(Sidebar, _Component);\n\n function Sidebar(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.state = {\n // the detected width of the sidebar in pixels\n sidebarWidth: props.defaultSidebarWidth,\n // keep track of touching params\n touchIdentifier: null,\n touchStartX: null,\n touchCurrentX: null,\n // if touch is supported by the browser\n dragSupported: false\n };\n _this.overlayClicked = _this.overlayClicked.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.onTouchStart = _this.onTouchStart.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.onTouchMove = _this.onTouchMove.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.onTouchEnd = _this.onTouchEnd.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.onScroll = _this.onScroll.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n _this.saveSidebarRef = _this.saveSidebarRef.bind(_assertThisInitialized(_assertThisInitialized(_this)));\n return _this;\n }\n\n var _proto = Sidebar.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var isIos = /iPad|iPhone|iPod/.test(navigator ? navigator.userAgent : \"\");\n this.setState({\n dragSupported: typeof window === \"object\" && \"ontouchstart\" in window && !isIos\n });\n this.saveSidebarWidth();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n // filter out the updates when we're touching\n if (!this.isTouching()) {\n this.saveSidebarWidth();\n }\n };\n\n _proto.onTouchStart = function onTouchStart(ev) {\n // filter out if a user starts swiping with a second finger\n if (!this.isTouching()) {\n var touch = ev.targetTouches[0];\n this.setState({\n touchIdentifier: touch.identifier,\n touchStartX: touch.clientX,\n touchCurrentX: touch.clientX\n });\n }\n };\n\n _proto.onTouchMove = function onTouchMove(ev) {\n if (this.isTouching()) {\n for (var ind = 0; ind < ev.targetTouches.length; ind++) {\n // we only care about the finger that we are tracking\n if (ev.targetTouches[ind].identifier === this.state.touchIdentifier) {\n this.setState({\n touchCurrentX: ev.targetTouches[ind].clientX\n });\n break;\n }\n }\n }\n };\n\n _proto.onTouchEnd = function onTouchEnd() {\n if (this.isTouching()) {\n // trigger a change to open if sidebar has been dragged beyond dragToggleDistance\n var touchWidth = this.touchSidebarWidth();\n\n if (this.props.open && touchWidth < this.state.sidebarWidth - this.props.dragToggleDistance || !this.props.open && touchWidth > this.props.dragToggleDistance) {\n this.props.onSetOpen(!this.props.open);\n }\n\n this.setState({\n touchIdentifier: null,\n touchStartX: null,\n touchCurrentX: null\n });\n }\n }; // This logic helps us prevents the user from sliding the sidebar horizontally\n // while scrolling the sidebar vertically. When a scroll event comes in, we're\n // cancelling the ongoing gesture if it did not move horizontally much.\n\n\n _proto.onScroll = function onScroll() {\n if (this.isTouching() && this.inCancelDistanceOnScroll()) {\n this.setState({\n touchIdentifier: null,\n touchStartX: null,\n touchCurrentX: null\n });\n }\n }; // True if the on going gesture X distance is less than the cancel distance\n\n\n _proto.inCancelDistanceOnScroll = function inCancelDistanceOnScroll() {\n var cancelDistanceOnScroll;\n\n if (this.props.pullRight) {\n cancelDistanceOnScroll = Math.abs(this.state.touchCurrentX - this.state.touchStartX) < CANCEL_DISTANCE_ON_SCROLL;\n } else {\n cancelDistanceOnScroll = Math.abs(this.state.touchStartX - this.state.touchCurrentX) < CANCEL_DISTANCE_ON_SCROLL;\n }\n\n return cancelDistanceOnScroll;\n };\n\n _proto.isTouching = function isTouching() {\n return this.state.touchIdentifier !== null;\n };\n\n _proto.overlayClicked = function overlayClicked() {\n if (this.props.open) {\n this.props.onSetOpen(false);\n }\n };\n\n _proto.saveSidebarWidth = function saveSidebarWidth() {\n var width = this.sidebar.offsetWidth;\n\n if (width !== this.state.sidebarWidth) {\n this.setState({\n sidebarWidth: width\n });\n }\n };\n\n _proto.saveSidebarRef = function saveSidebarRef(node) {\n this.sidebar = node;\n }; // calculate the sidebarWidth based on current touch info\n\n\n _proto.touchSidebarWidth = function touchSidebarWidth() {\n // if the sidebar is open and start point of drag is inside the sidebar\n // we will only drag the distance they moved their finger\n // otherwise we will move the sidebar to be below the finger.\n if (this.props.pullRight) {\n if (this.props.open && window.innerWidth - this.state.touchStartX < this.state.sidebarWidth) {\n if (this.state.touchCurrentX > this.state.touchStartX) {\n return this.state.sidebarWidth + this.state.touchStartX - this.state.touchCurrentX;\n }\n\n return this.state.sidebarWidth;\n }\n\n return Math.min(window.innerWidth - this.state.touchCurrentX, this.state.sidebarWidth);\n }\n\n if (this.props.open && this.state.touchStartX < this.state.sidebarWidth) {\n if (this.state.touchCurrentX > this.state.touchStartX) {\n return this.state.sidebarWidth;\n }\n\n return this.state.sidebarWidth - this.state.touchStartX + this.state.touchCurrentX;\n }\n\n return Math.min(this.state.touchCurrentX, this.state.sidebarWidth);\n };\n\n _proto.render = function render() {\n var sidebarStyle = _objectSpread({}, defaultStyles.sidebar, this.props.styles.sidebar);\n\n var contentStyle = _objectSpread({}, defaultStyles.content, this.props.styles.content);\n\n var overlayStyle = _objectSpread({}, defaultStyles.overlay, this.props.styles.overlay);\n\n var useTouch = this.state.dragSupported && this.props.touch;\n var isTouching = this.isTouching();\n var rootProps = {\n className: this.props.rootClassName,\n style: _objectSpread({}, defaultStyles.root, this.props.styles.root),\n role: \"navigation\",\n id: this.props.rootId\n };\n var dragHandle;\n var hasBoxShadow = this.props.shadow && (isTouching || this.props.open || this.props.docked); // sidebarStyle right/left\n\n if (this.props.pullRight) {\n sidebarStyle.right = 0;\n sidebarStyle.transform = \"translateX(100%)\";\n sidebarStyle.WebkitTransform = \"translateX(100%)\";\n\n if (hasBoxShadow) {\n sidebarStyle.boxShadow = \"-2px 2px 4px rgba(0, 0, 0, 0.15)\";\n }\n } else {\n sidebarStyle.left = 0;\n sidebarStyle.transform = \"translateX(-100%)\";\n sidebarStyle.WebkitTransform = \"translateX(-100%)\";\n\n if (hasBoxShadow) {\n sidebarStyle.boxShadow = \"2px 2px 4px rgba(0, 0, 0, 0.15)\";\n }\n }\n\n if (isTouching) {\n var percentage = this.touchSidebarWidth() / this.state.sidebarWidth; // slide open to what we dragged\n\n if (this.props.pullRight) {\n sidebarStyle.transform = \"translateX(\" + (1 - percentage) * 100 + \"%)\";\n sidebarStyle.WebkitTransform = \"translateX(\" + (1 - percentage) * 100 + \"%)\";\n } else {\n sidebarStyle.transform = \"translateX(-\" + (1 - percentage) * 100 + \"%)\";\n sidebarStyle.WebkitTransform = \"translateX(-\" + (1 - percentage) * 100 + \"%)\";\n } // fade overlay to match distance of drag\n\n\n overlayStyle.opacity = percentage;\n overlayStyle.visibility = \"visible\";\n } else if (this.props.docked) {\n // show sidebar\n if (this.state.sidebarWidth !== 0) {\n sidebarStyle.transform = \"translateX(0%)\";\n sidebarStyle.WebkitTransform = \"translateX(0%)\";\n } // make space on the left/right side of the content for the sidebar\n\n\n if (this.props.pullRight) {\n contentStyle.right = this.state.sidebarWidth + \"px\";\n } else {\n contentStyle.left = this.state.sidebarWidth + \"px\";\n }\n } else if (this.props.open) {\n // slide open sidebar\n sidebarStyle.transform = \"translateX(0%)\";\n sidebarStyle.WebkitTransform = \"translateX(0%)\"; // show overlay\n\n overlayStyle.opacity = 1;\n overlayStyle.visibility = \"visible\";\n }\n\n if (isTouching || !this.props.transitions) {\n sidebarStyle.transition = \"none\";\n sidebarStyle.WebkitTransition = \"none\";\n contentStyle.transition = \"none\";\n overlayStyle.transition = \"none\";\n }\n\n if (useTouch) {\n if (this.props.open) {\n rootProps.onTouchStart = this.onTouchStart;\n rootProps.onTouchMove = this.onTouchMove;\n rootProps.onTouchEnd = this.onTouchEnd;\n rootProps.onTouchCancel = this.onTouchEnd;\n rootProps.onScroll = this.onScroll;\n } else {\n var dragHandleStyle = _objectSpread({}, defaultStyles.dragHandle, this.props.styles.dragHandle);\n\n dragHandleStyle.width = this.props.touchHandleWidth; // dragHandleStyle right/left\n\n if (this.props.pullRight) {\n dragHandleStyle.right = 0;\n } else {\n dragHandleStyle.left = 0;\n }\n\n dragHandle = React.createElement(\"div\", {\n style: dragHandleStyle,\n onTouchStart: this.onTouchStart,\n onTouchMove: this.onTouchMove,\n onTouchEnd: this.onTouchEnd,\n onTouchCancel: this.onTouchEnd\n });\n }\n }\n\n return React.createElement(\"div\", rootProps, React.createElement(\"div\", {\n className: this.props.sidebarClassName,\n style: sidebarStyle,\n ref: this.saveSidebarRef,\n id: this.props.sidebarId\n }, this.props.sidebar), React.createElement(\"div\", {\n className: this.props.overlayClassName,\n style: overlayStyle,\n onClick: this.overlayClicked,\n id: this.props.overlayId\n }), React.createElement(\"div\", {\n className: this.props.contentClassName,\n style: contentStyle,\n id: this.props.contentId\n }, dragHandle, this.props.children));\n };\n\n return Sidebar;\n}(Component);\n\nprocess.env.NODE_ENV !== \"production\" ? Sidebar.propTypes = {\n // main content to render\n children: PropTypes.node.isRequired,\n // styles\n styles: PropTypes.shape({\n root: PropTypes.object,\n sidebar: PropTypes.object,\n content: PropTypes.object,\n overlay: PropTypes.object,\n dragHandle: PropTypes.object\n }),\n // root component optional class\n rootClassName: PropTypes.string,\n // sidebar optional class\n sidebarClassName: PropTypes.string,\n // content optional class\n contentClassName: PropTypes.string,\n // overlay optional class\n overlayClassName: PropTypes.string,\n // sidebar content to render\n sidebar: PropTypes.node.isRequired,\n // boolean if sidebar should be docked\n docked: PropTypes.bool,\n // boolean if sidebar should slide open\n open: PropTypes.bool,\n // boolean if transitions should be disabled\n transitions: PropTypes.bool,\n // boolean if touch gestures are enabled\n touch: PropTypes.bool,\n // max distance from the edge we can start touching\n touchHandleWidth: PropTypes.number,\n // Place the sidebar on the right\n pullRight: PropTypes.bool,\n // Enable/Disable sidebar shadow\n shadow: PropTypes.bool,\n // distance we have to drag the sidebar to toggle open state\n dragToggleDistance: PropTypes.number,\n // callback called when the overlay is clicked\n onSetOpen: PropTypes.func,\n // Initial sidebar width when page loads\n defaultSidebarWidth: PropTypes.number,\n // root component optional id\n rootId: PropTypes.string,\n // sidebar optional id\n sidebarId: PropTypes.string,\n // content optional id\n contentId: PropTypes.string,\n // overlay optional id\n overlayId: PropTypes.string\n} : void 0;\nSidebar.defaultProps = {\n docked: false,\n open: false,\n transitions: true,\n touch: true,\n touchHandleWidth: 20,\n pullRight: false,\n shadow: true,\n dragToggleDistance: 30,\n onSetOpen: function onSetOpen() {},\n styles: {},\n defaultSidebarWidth: 0\n};\n\nexport default Sidebar;\n","var defineProperty = require(\"./defineProperty.js\");\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nmodule.exports = _objectSpread;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","'use strict';\n\nvar _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\nvar _class, _temp;\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\nvar React = require('react');\nvar Component = React.Component;\n\nvar PropTypes = require('prop-types');\n\nvar _require = require('./getDeviceId'),\n getDeviceId = _require.getDeviceId,\n getFacingModePattern = _require.getFacingModePattern;\n\nvar havePropsChanged = require('./havePropsChanged');\nvar createBlob = require('./createBlob');\n\n// Require adapter to support older browser implementations\nrequire('webrtc-adapter');\n\n// Inline worker.js as a string value of workerBlob.\n// eslint-disable-next-line\nvar workerBlob = createBlob([\"!function(o,e){\\\"object\\\"==typeof exports&&\\\"object\\\"==typeof module?module.exports=e():\\\"function\\\"==typeof define&&define.amd?define([],e):\\\"object\\\"==typeof exports?exports.jsQR=e():o.jsQR=e()}(\\\"undefined\\\"!=typeof self?self:this,function(){return function(o){function e(t){if(r[t])return r[t].exports;var c=r[t]={i:t,l:!1,exports:{}};return o[t].call(c.exports,c,c.exports,e),c.l=!0,c.exports}var r={};return e.m=o,e.c=r,e.d=function(o,r,t){e.o(o,r)||Object.defineProperty(o,r,{configurable:!1,enumerable:!0,get:t})},e.n=function(o){var r=o&&o.__esModule?function(){return o.default}:function(){return o};return e.d(r,\\\"a\\\",r),r},e.o=function(o,e){return Object.prototype.hasOwnProperty.call(o,e)},e.p=\\\"\\\",e(e.s=3)}([function(o,e,r){\\\"use strict\\\";Object.defineProperty(e,\\\"__esModule\\\",{value:!0});var t=function(){function o(o,e){this.width=e,this.height=o.length/e,this.data=o}return o.createEmpty=function(e,r){return new o(new Uint8ClampedArray(e*r),e)},o.prototype.get=function(o,e){return!(o<0||o>=this.width||e<0||e>=this.height)&&!!this.data[e*this.width+o]},o.prototype.set=function(o,e,r){this.data[e*this.width+o]=r?1:0},o.prototype.setRegion=function(o,e,r,t,c){for(var s=e;s=this.size&&(t=(t^this.primitive)&this.size-1);for(var s=0;s1&&0===e[0]){for(var t=1;tc.length&&(n=[c,r],r=n[0],c=n[1]);for(var s=new Uint8ClampedArray(c.length),a=c.length-r.length,d=0;dr?r:o}function c(o,e,r,c){if(o.length!==e*r*4)throw new Error(\\\"Malformed data passed to binarizer.\\\");for(var l=new n(e,r),i=0;i0&&v>0)){var x=(w.get(v,P-1)+2*w.get(v-1,P)+w.get(v-1,P-1))/4;p6&&(r.setRegion(e-11,0,3,6,!0),r.setRegion(0,e-11,6,3,!0)),r}function a(o,e,r){for(var t=w[r.dataMask],a=o.height,d=s(e),n=[],l=0,i=0,B=!0,k=a-1;k>0;k-=2){6===k&&k--;for(var u=0;u=0;a--)for(var d=e-9;d>=e-11;d--)s=c(o.get(d,a),s);for(var n=0,d=5;d>=0;d--)for(var a=e-9;a>=e-11;a--)n=c(o.get(d,a),n);for(var l,i=1/0,B=0,k=m.VERSIONS;B=0;s--)6!==s&&(e=c(o.get(8,s),e));for(var a=o.height,d=0,s=a-1;s>=a-7;s--)d=c(o.get(8,s),d);for(var r=a-8;r1)for(var B=t.ecBlocks[0].numBlocks,k=t.ecBlocks[1].numBlocks,d=0;d0;)for(var u=0,C=c;u=3;){var a=o.readBits(10);if(a>=1e3)throw new Error(\\\"Invalid numeric value above 999\\\");var d=Math.floor(a/100),n=Math.floor(a/10)%10,l=a%10;r.push(48+d,48+n,48+l),t+=d.toString()+n.toString()+l.toString(),s-=3}if(2===s){var a=o.readBits(7);if(a>=100)throw new Error(\\\"Invalid numeric value above 99\\\");var d=Math.floor(a/10),n=a%10;r.push(48+d,48+n),t+=d.toString()+n.toString()}else if(1===s){var a=o.readBits(4);if(a>=10)throw new Error(\\\"Invalid numeric value above 9\\\");r.push(48+a),t+=a.toString()}return{bytes:r,text:t}}function c(o,e){for(var r=[],t=\\\"\\\",c=[9,11,13][e],s=o.readBits(c);s>=2;){var a=o.readBits(11),d=Math.floor(a/45),n=a%45;r.push(k[d].charCodeAt(0),k[n].charCodeAt(0)),t+=k[d]+k[n],s-=2}if(1===s){var d=o.readBits(6);r.push(k[d].charCodeAt(0)),t+=k[d]}return{bytes:r,text:t}}function s(o,e){for(var r=[],t=\\\"\\\",c=[8,16,16][e],s=o.readBits(c),a=0;a>8,255&n),t+=String.fromCharCode(i.shiftJISTable[n])}return{bytes:r,text:t}}function d(o,e){for(var r=new l.BitStream(o),d=e<=9?0:e<=26?1:2,i={text:\\\"\\\",bytes:[],chunks:[]};r.available()>=4;){var k=r.readBits(4);if(k===B.Terminator)return i;if(k===B.ECI)0===r.readBits(1)?i.chunks.push({type:n.ECI,assignmentNumber:r.readBits(7)}):0===r.readBits(1)?i.chunks.push({type:n.ECI,assignmentNumber:r.readBits(14)}):0===r.readBits(1)?i.chunks.push({type:n.ECI,assignmentNumber:r.readBits(21)}):i.chunks.push({type:n.ECI,assignmentNumber:-1});else if(k===B.Numeric){var u=t(r,d);i.text+=u.text,(w=i.bytes).push.apply(w,u.bytes),i.chunks.push({type:n.Numeric,text:u.text})}else if(k===B.Alphanumeric){var C=c(r,d);i.text+=C.text,(P=i.bytes).push.apply(P,C.bytes),i.chunks.push({type:n.Alphanumeric,text:C.text})}else if(k===B.Byte){var m=s(r,d);i.text+=m.text,(v=i.bytes).push.apply(v,m.bytes),i.chunks.push({type:n.Byte,bytes:m.bytes,text:m.text})}else if(k===B.Kanji){var f=a(r,d);i.text+=f.text,(h=i.bytes).push.apply(h,f.bytes),i.chunks.push({type:n.Kanji,bytes:f.bytes,text:f.text})}}var w,P,v,h}Object.defineProperty(e,\\\"__esModule\\\",{value:!0});var n,l=r(7),i=r(8);!function(o){o.Numeric=\\\"numeric\\\",o.Alphanumeric=\\\"alphanumeric\\\",o.Byte=\\\"byte\\\",o.Kanji=\\\"kanji\\\",o.ECI=\\\"eci\\\"}(n=e.Mode||(e.Mode={}));var B;!function(o){o[o.Terminator=0]=\\\"Terminator\\\",o[o.Numeric=1]=\\\"Numeric\\\",o[o.Alphanumeric=2]=\\\"Alphanumeric\\\",o[o.Byte=4]=\\\"Byte\\\",o[o.Kanji=8]=\\\"Kanji\\\",o[o.ECI=7]=\\\"ECI\\\"}(B||(B={}));var k=[\\\"0\\\",\\\"1\\\",\\\"2\\\",\\\"3\\\",\\\"4\\\",\\\"5\\\",\\\"6\\\",\\\"7\\\",\\\"8\\\",\\\"9\\\",\\\"A\\\",\\\"B\\\",\\\"C\\\",\\\"D\\\",\\\"E\\\",\\\"F\\\",\\\"G\\\",\\\"H\\\",\\\"I\\\",\\\"J\\\",\\\"K\\\",\\\"L\\\",\\\"M\\\",\\\"N\\\",\\\"O\\\",\\\"P\\\",\\\"Q\\\",\\\"R\\\",\\\"S\\\",\\\"T\\\",\\\"U\\\",\\\"V\\\",\\\"W\\\",\\\"X\\\",\\\"Y\\\",\\\"Z\\\",\\\" \\\",\\\"$\\\",\\\"%\\\",\\\"*\\\",\\\"+\\\",\\\"-\\\",\\\".\\\",\\\"/\\\",\\\":\\\"];e.decode=d},function(o,e,r){\\\"use strict\\\";Object.defineProperty(e,\\\"__esModule\\\",{value:!0});var t=function(){function o(o){this.byteOffset=0,this.bitOffset=0,this.bytes=o}return o.prototype.readBits=function(o){if(o<1||o>32||o>this.available())throw new Error(\\\"Cannot read \\\"+o.toString()+\\\" bits\\\");var e=0;if(this.bitOffset>0){var r=8-this.bitOffset,t=o>8-t<>c,o-=t,this.bitOffset+=t,8===this.bitOffset&&(this.bitOffset=0,this.byteOffset++)}if(o>0){for(;o>=8;)e=e<<8|255&this.bytes[this.byteOffset],this.byteOffset++,o-=8;if(o>0){var c=8-o,s=255>>c<>c,this.bitOffset+=o}}return e},o.prototype.available=function(){return 8*(this.bytes.length-this.byteOffset)-this.bitOffset},o}();e.BitStream=t},function(o,e,r){\\\"use strict\\\";Object.defineProperty(e,\\\"__esModule\\\",{value:!0}),e.shiftJISTable={32:32,33:33,34:34,35:35,36:36,37:37,38:38,39:39,40:40,41:41,42:42,43:43,44:44,45:45,46:46,47:47,48:48,49:49,50:50,51:51,52:52,53:53,54:54,55:55,56:56,57:57,58:58,59:59,60:60,61:61,62:62,63:63,64:64,65:65,66:66,67:67,68:68,69:69,70:70,71:71,72:72,73:73,74:74,75:75,76:76,77:77,78:78,79:79,80:80,81:81,82:82,83:83,84:84,85:85,86:86,87:87,88:88,89:89,90:90,91:91,92:165,93:93,94:94,95:95,96:96,97:97,98:98,99:99,100:100,101:101,102:102,103:103,104:104,105:105,106:106,107:107,108:108,109:109,110:110,111:111,112:112,113:113,114:114,115:115,116:116,117:117,118:118,119:119,120:120,121:121,122:122,123:123,124:124,125:125,126:8254,33088:12288,33089:12289,33090:12290,33091:65292,33092:65294,33093:12539,33094:65306,33095:65307,33096:65311,33097:65281,33098:12443,33099:12444,33100:180,33101:65344,33102:168,33103:65342,33104:65507,33105:65343,33106:12541,33107:12542,33108:12445,33109:12446,33110:12291,33111:20189,33112:12293,33113:12294,33114:12295,33115:12540,33116:8213,33117:8208,33118:65295,33119:92,33120:12316,33121:8214,33122:65372,33123:8230,33124:8229,33125:8216,33126:8217,33127:8220,33128:8221,33129:65288,33130:65289,33131:12308,33132:12309,33133:65339,33134:65341,33135:65371,33136:65373,33137:12296,33138:12297,33139:12298,33140:12299,33141:12300,33142:12301,33143:12302,33144:12303,33145:12304,33146:12305,33147:65291,33148:8722,33149:177,33150:215,33152:247,33153:65309,33154:8800,33155:65308,33156:65310,33157:8806,33158:8807,33159:8734,33160:8756,33161:9794,33162:9792,33163:176,33164:8242,33165:8243,33166:8451,33167:65509,33168:65284,33169:162,33170:163,33171:65285,33172:65283,33173:65286,33174:65290,33175:65312,33176:167,33177:9734,33178:9733,33179:9675,33180:9679,33181:9678,33182:9671,33183:9670,33184:9633,33185:9632,33186:9651,33187:9650,33188:9661,33189:9660,33190:8251,33191:12306,33192:8594,33193:8592,33194:8593,33195:8595,33196:12307,33208:8712,33209:8715,33210:8838,33211:8839,33212:8834,33213:8835,33214:8746,33215:8745,33224:8743,33225:8744,33226:172,33227:8658,33228:8660,33229:8704,33230:8707,33242:8736,33243:8869,33244:8978,33245:8706,33246:8711,33247:8801,33248:8786,33249:8810,33250:8811,33251:8730,33252:8765,33253:8733,33254:8757,33255:8747,33256:8748,33264:8491,33265:8240,33266:9839,33267:9837,33268:9834,33269:8224,33270:8225,33271:182,33276:9711,33359:65296,33360:65297,33361:65298,33362:65299,33363:65300,33364:65301,33365:65302,33366:65303,33367:65304,33368:65305,33376:65313,33377:65314,33378:65315,33379:65316,33380:65317,33381:65318,33382:65319,33383:65320,33384:65321,33385:65322,33386:65323,33387:65324,33388:65325,33389:65326,33390:65327,33391:65328,33392:65329,33393:65330,33394:65331,33395:65332,33396:65333,33397:65334,33398:65335,33399:65336,33400:65337,33401:65338,33409:65345,33410:65346,33411:65347,33412:65348,33413:65349,33414:65350,33415:65351,33416:65352,33417:65353,33418:65354,33419:65355,33420:65356,33421:65357,33422:65358,33423:65359,33424:65360,33425:65361,33426:65362,33427:65363,33428:65364,33429:65365,33430:65366,33431:65367,33432:65368,33433:65369,33434:65370,33439:12353,33440:12354,33441:12355,33442:12356,33443:12357,33444:12358,33445:12359,33446:12360,33447:12361,33448:12362,33449:12363,33450:12364,33451:12365,33452:12366,33453:12367,33454:12368,33455:12369,33456:12370,33457:12371,33458:12372,33459:12373,33460:12374,33461:12375,33462:12376,33463:12377,33464:12378,33465:12379,33466:12380,33467:12381,33468:12382,33469:12383,33470:12384,33471:12385,33472:12386,33473:12387,33474:12388,33475:12389,33476:12390,33477:12391,33478:12392,33479:12393,33480:12394,33481:12395,33482:12396,33483:12397,33484:12398,33485:12399,33486:12400,33487:12401,33488:12402,33489:12403,33490:12404,33491:12405,33492:12406,33493:12407,33494:12408,33495:12409,33496:12410,33497:12411,33498:12412,33499:12413,33500:12414,33501:12415,33502:12416,33503:12417,33504:12418,33505:12419,33506:12420,33507:12421,33508:12422,33509:12423,33510:12424,33511:12425,33512:12426,33513:12427,33514:12428,33515:12429,33516:12430,33517:12431,33518:12432,33519:12433,33520:12434,33521:12435,33600:12449,33601:12450,33602:12451,33603:12452,33604:12453,33605:12454,33606:12455,33607:12456,33608:12457,33609:12458,33610:12459,33611:12460,33612:12461,33613:12462,33614:12463,33615:12464,33616:12465,33617:12466,33618:12467,33619:12468,33620:12469,33621:12470,33622:12471,33623:12472,33624:12473,33625:12474,33626:12475,33627:12476,33628:12477,33629:12478,33630:12479,33631:12480,33632:12481,33633:12482,33634:12483,33635:12484,33636:12485,33637:12486,33638:12487,33639:12488,33640:12489,33641:12490,33642:12491,33643:12492,33644:12493,33645:12494,33646:12495,33647:12496,33648:12497,33649:12498,33650:12499,33651:12500,33652:12501,33653:12502,33654:12503,33655:12504,33656:12505,33657:12506,33658:12507,33659:12508,33660:12509,33661:12510,33662:12511,33664:12512,33665:12513,33666:12514,33667:12515,33668:12516,33669:12517,33670:12518,33671:12519,33672:12520,33673:12521,33674:12522,33675:12523,33676:12524,33677:12525,33678:12526,33679:12527,33680:12528,33681:12529,33682:12530,33683:12531,33684:12532,33685:12533,33686:12534,33695:913,33696:914,33697:915,33698:916,33699:917,33700:918,33701:919,33702:920,33703:921,33704:922,33705:923,33706:924,33707:925,33708:926,33709:927,33710:928,33711:929,33712:931,33713:932,33714:933,33715:934,33716:935,33717:936,33718:937,33727:945,33728:946,33729:947,33730:948,33731:949,33732:950,33733:951,33734:952,33735:953,33736:954,33737:955,33738:956,33739:957,33740:958,33741:959,33742:960,33743:961,33744:963,33745:964,33746:965,33747:966,33748:967,33749:968,33750:969,33856:1040,33857:1041,33858:1042,33859:1043,33860:1044,33861:1045,33862:1025,33863:1046,33864:1047,33865:1048,33866:1049,33867:1050,33868:1051,33869:1052,33870:1053,33871:1054,33872:1055,33873:1056,33874:1057,33875:1058,33876:1059,33877:1060,33878:1061,33879:1062,33880:1063,33881:1064,33882:1065,33883:1066,33884:1067,33885:1068,33886:1069,33887:1070,33888:1071,33904:1072,33905:1073,33906:1074,33907:1075,33908:1076,33909:1077,33910:1105,33911:1078,33912:1079,33913:1080,33914:1081,33915:1082,33916:1083,33917:1084,33918:1085,33920:1086,33921:1087,33922:1088,33923:1089,33924:1090,33925:1091,33926:1092,33927:1093,33928:1094,33929:1095,33930:1096,33931:1097,33932:1098,33933:1099,33934:1100,33935:1101,33936:1102,33937:1103,33951:9472,33952:9474,33953:9484,33954:9488,33955:9496,33956:9492,33957:9500,33958:9516,33959:9508,33960:9524,33961:9532,33962:9473,33963:9475,33964:9487,33965:9491,33966:9499,33967:9495,33968:9507,33969:9523,33970:9515,33971:9531,33972:9547,33973:9504,33974:9519,33975:9512,33976:9527,33977:9535,33978:9501,33979:9520,33980:9509,33981:9528,33982:9538,34975:20124,34976:21782,34977:23043,34978:38463,34979:21696,34980:24859,34981:25384,34982:23030,34983:36898,34984:33909,34985:33564,34986:31312,34987:24746,34988:25569,34989:28197,34990:26093,34991:33894,34992:33446,34993:39925,34994:26771,34995:22311,34996:26017,34997:25201,34998:23451,34999:22992,35e3:34427,35001:39156,35002:32098,35003:32190,35004:39822,35005:25110,35006:31903,35007:34999,35008:23433,35009:24245,35010:25353,35011:26263,35012:26696,35013:38343,35014:38797,35015:26447,35016:20197,35017:20234,35018:20301,35019:20381,35020:20553,35021:22258,35022:22839,35023:22996,35024:23041,35025:23561,35026:24799,35027:24847,35028:24944,35029:26131,35030:26885,35031:28858,35032:30031,35033:30064,35034:31227,35035:32173,35036:32239,35037:32963,35038:33806,35039:34915,35040:35586,35041:36949,35042:36986,35043:21307,35044:20117,35045:20133,35046:22495,35047:32946,35048:37057,35049:30959,35050:19968,35051:22769,35052:28322,35053:36920,35054:31282,35055:33576,35056:33419,35057:39983,35058:20801,35059:21360,35060:21693,35061:21729,35062:22240,35063:23035,35064:24341,35065:39154,35066:28139,35067:32996,35068:34093,35136:38498,35137:38512,35138:38560,35139:38907,35140:21515,35141:21491,35142:23431,35143:28879,35144:32701,35145:36802,35146:38632,35147:21359,35148:40284,35149:31418,35150:19985,35151:30867,35152:33276,35153:28198,35154:22040,35155:21764,35156:27421,35157:34074,35158:39995,35159:23013,35160:21417,35161:28006,35162:29916,35163:38287,35164:22082,35165:20113,35166:36939,35167:38642,35168:33615,35169:39180,35170:21473,35171:21942,35172:23344,35173:24433,35174:26144,35175:26355,35176:26628,35177:27704,35178:27891,35179:27945,35180:29787,35181:30408,35182:31310,35183:38964,35184:33521,35185:34907,35186:35424,35187:37613,35188:28082,35189:30123,35190:30410,35191:39365,35192:24742,35193:35585,35194:36234,35195:38322,35196:27022,35197:21421,35198:20870,35200:22290,35201:22576,35202:22852,35203:23476,35204:24310,35205:24616,35206:25513,35207:25588,35208:27839,35209:28436,35210:28814,35211:28948,35212:29017,35213:29141,35214:29503,35215:32257,35216:33398,35217:33489,35218:34199,35219:36960,35220:37467,35221:40219,35222:22633,35223:26044,35224:27738,35225:29989,35226:20985,35227:22830,35228:22885,35229:24448,35230:24540,35231:25276,35232:26106,35233:27178,35234:27431,35235:27572,35236:29579,35237:32705,35238:35158,35239:40236,35240:40206,35241:40644,35242:23713,35243:27798,35244:33659,35245:20740,35246:23627,35247:25014,35248:33222,35249:26742,35250:29281,35251:20057,35252:20474,35253:21368,35254:24681,35255:28201,35256:31311,35257:38899,35258:19979,35259:21270,35260:20206,35261:20309,35262:20285,35263:20385,35264:20339,35265:21152,35266:21487,35267:22025,35268:22799,35269:23233,35270:23478,35271:23521,35272:31185,35273:26247,35274:26524,35275:26550,35276:27468,35277:27827,35278:28779,35279:29634,35280:31117,35281:31166,35282:31292,35283:31623,35284:33457,35285:33499,35286:33540,35287:33655,35288:33775,35289:33747,35290:34662,35291:35506,35292:22057,35293:36008,35294:36838,35295:36942,35296:38686,35297:34442,35298:20420,35299:23784,35300:25105,35301:29273,35302:30011,35303:33253,35304:33469,35305:34558,35306:36032,35307:38597,35308:39187,35309:39381,35310:20171,35311:20250,35312:35299,35313:22238,35314:22602,35315:22730,35316:24315,35317:24555,35318:24618,35319:24724,35320:24674,35321:25040,35322:25106,35323:25296,35324:25913,35392:39745,35393:26214,35394:26800,35395:28023,35396:28784,35397:30028,35398:30342,35399:32117,35400:33445,35401:34809,35402:38283,35403:38542,35404:35997,35405:20977,35406:21182,35407:22806,35408:21683,35409:23475,35410:23830,35411:24936,35412:27010,35413:28079,35414:30861,35415:33995,35416:34903,35417:35442,35418:37799,35419:39608,35420:28012,35421:39336,35422:34521,35423:22435,35424:26623,35425:34510,35426:37390,35427:21123,35428:22151,35429:21508,35430:24275,35431:25313,35432:25785,35433:26684,35434:26680,35435:27579,35436:29554,35437:30906,35438:31339,35439:35226,35440:35282,35441:36203,35442:36611,35443:37101,35444:38307,35445:38548,35446:38761,35447:23398,35448:23731,35449:27005,35450:38989,35451:38990,35452:25499,35453:31520,35454:27179,35456:27263,35457:26806,35458:39949,35459:28511,35460:21106,35461:21917,35462:24688,35463:25324,35464:27963,35465:28167,35466:28369,35467:33883,35468:35088,35469:36676,35470:19988,35471:39993,35472:21494,35473:26907,35474:27194,35475:38788,35476:26666,35477:20828,35478:31427,35479:33970,35480:37340,35481:37772,35482:22107,35483:40232,35484:26658,35485:33541,35486:33841,35487:31909,35488:21e3,35489:33477,35490:29926,35491:20094,35492:20355,35493:20896,35494:23506,35495:21002,35496:21208,35497:21223,35498:24059,35499:21914,35500:22570,35501:23014,35502:23436,35503:23448,35504:23515,35505:24178,35506:24185,35507:24739,35508:24863,35509:24931,35510:25022,35511:25563,35512:25954,35513:26577,35514:26707,35515:26874,35516:27454,35517:27475,35518:27735,35519:28450,35520:28567,35521:28485,35522:29872,35523:29976,35524:30435,35525:30475,35526:31487,35527:31649,35528:31777,35529:32233,35530:32566,35531:32752,35532:32925,35533:33382,35534:33694,35535:35251,35536:35532,35537:36011,35538:36996,35539:37969,35540:38291,35541:38289,35542:38306,35543:38501,35544:38867,35545:39208,35546:33304,35547:20024,35548:21547,35549:23736,35550:24012,35551:29609,35552:30284,35553:30524,35554:23721,35555:32747,35556:36107,35557:38593,35558:38929,35559:38996,35560:39e3,35561:20225,35562:20238,35563:21361,35564:21916,35565:22120,35566:22522,35567:22855,35568:23305,35569:23492,35570:23696,35571:24076,35572:24190,35573:24524,35574:25582,35575:26426,35576:26071,35577:26082,35578:26399,35579:26827,35580:26820,35648:27231,35649:24112,35650:27589,35651:27671,35652:27773,35653:30079,35654:31048,35655:23395,35656:31232,35657:32e3,35658:24509,35659:35215,35660:35352,35661:36020,35662:36215,35663:36556,35664:36637,35665:39138,35666:39438,35667:39740,35668:20096,35669:20605,35670:20736,35671:22931,35672:23452,35673:25135,35674:25216,35675:25836,35676:27450,35677:29344,35678:30097,35679:31047,35680:32681,35681:34811,35682:35516,35683:35696,35684:25516,35685:33738,35686:38816,35687:21513,35688:21507,35689:21931,35690:26708,35691:27224,35692:35440,35693:30759,35694:26485,35695:40653,35696:21364,35697:23458,35698:33050,35699:34384,35700:36870,35701:19992,35702:20037,35703:20167,35704:20241,35705:21450,35706:21560,35707:23470,35708:24339,35709:24613,35710:25937,35712:26429,35713:27714,35714:27762,35715:27875,35716:28792,35717:29699,35718:31350,35719:31406,35720:31496,35721:32026,35722:31998,35723:32102,35724:26087,35725:29275,35726:21435,35727:23621,35728:24040,35729:25298,35730:25312,35731:25369,35732:28192,35733:34394,35734:35377,35735:36317,35736:37624,35737:28417,35738:31142,35739:39770,35740:20136,35741:20139,35742:20140,35743:20379,35744:20384,35745:20689,35746:20807,35747:31478,35748:20849,35749:20982,35750:21332,35751:21281,35752:21375,35753:21483,35754:21932,35755:22659,35756:23777,35757:24375,35758:24394,35759:24623,35760:24656,35761:24685,35762:25375,35763:25945,35764:27211,35765:27841,35766:29378,35767:29421,35768:30703,35769:33016,35770:33029,35771:33288,35772:34126,35773:37111,35774:37857,35775:38911,35776:39255,35777:39514,35778:20208,35779:20957,35780:23597,35781:26241,35782:26989,35783:23616,35784:26354,35785:26997,35786:29577,35787:26704,35788:31873,35789:20677,35790:21220,35791:22343,35792:24062,35793:37670,35794:26020,35795:27427,35796:27453,35797:29748,35798:31105,35799:31165,35800:31563,35801:32202,35802:33465,35803:33740,35804:34943,35805:35167,35806:35641,35807:36817,35808:37329,35809:21535,35810:37504,35811:20061,35812:20534,35813:21477,35814:21306,35815:29399,35816:29590,35817:30697,35818:33510,35819:36527,35820:39366,35821:39368,35822:39378,35823:20855,35824:24858,35825:34398,35826:21936,35827:31354,35828:20598,35829:23507,35830:36935,35831:38533,35832:20018,35833:27355,35834:37351,35835:23633,35836:23624,35904:25496,35905:31391,35906:27795,35907:38772,35908:36705,35909:31402,35910:29066,35911:38536,35912:31874,35913:26647,35914:32368,35915:26705,35916:37740,35917:21234,35918:21531,35919:34219,35920:35347,35921:32676,35922:36557,35923:37089,35924:21350,35925:34952,35926:31041,35927:20418,35928:20670,35929:21009,35930:20804,35931:21843,35932:22317,35933:29674,35934:22411,35935:22865,35936:24418,35937:24452,35938:24693,35939:24950,35940:24935,35941:25001,35942:25522,35943:25658,35944:25964,35945:26223,35946:26690,35947:28179,35948:30054,35949:31293,35950:31995,35951:32076,35952:32153,35953:32331,35954:32619,35955:33550,35956:33610,35957:34509,35958:35336,35959:35427,35960:35686,35961:36605,35962:38938,35963:40335,35964:33464,35965:36814,35966:39912,35968:21127,35969:25119,35970:25731,35971:28608,35972:38553,35973:26689,35974:20625,35975:27424,35976:27770,35977:28500,35978:31348,35979:32080,35980:34880,35981:35363,35982:26376,35983:20214,35984:20537,35985:20518,35986:20581,35987:20860,35988:21048,35989:21091,35990:21927,35991:22287,35992:22533,35993:23244,35994:24314,35995:25010,35996:25080,35997:25331,35998:25458,35999:26908,36e3:27177,36001:29309,36002:29356,36003:29486,36004:30740,36005:30831,36006:32121,36007:30476,36008:32937,36009:35211,36010:35609,36011:36066,\\n36012:36562,36013:36963,36014:37749,36015:38522,36016:38997,36017:39443,36018:40568,36019:20803,36020:21407,36021:21427,36022:24187,36023:24358,36024:28187,36025:28304,36026:29572,36027:29694,36028:32067,36029:33335,36030:35328,36031:35578,36032:38480,36033:20046,36034:20491,36035:21476,36036:21628,36037:22266,36038:22993,36039:23396,36040:24049,36041:24235,36042:24359,36043:25144,36044:25925,36045:26543,36046:28246,36047:29392,36048:31946,36049:34996,36050:32929,36051:32993,36052:33776,36053:34382,36054:35463,36055:36328,36056:37431,36057:38599,36058:39015,36059:40723,36060:20116,36061:20114,36062:20237,36063:21320,36064:21577,36065:21566,36066:23087,36067:24460,36068:24481,36069:24735,36070:26791,36071:27278,36072:29786,36073:30849,36074:35486,36075:35492,36076:35703,36077:37264,36078:20062,36079:39881,36080:20132,36081:20348,36082:20399,36083:20505,36084:20502,36085:20809,36086:20844,36087:21151,36088:21177,36089:21246,36090:21402,36091:21475,36092:21521,36160:21518,36161:21897,36162:22353,36163:22434,36164:22909,36165:23380,36166:23389,36167:23439,36168:24037,36169:24039,36170:24055,36171:24184,36172:24195,36173:24218,36174:24247,36175:24344,36176:24658,36177:24908,36178:25239,36179:25304,36180:25511,36181:25915,36182:26114,36183:26179,36184:26356,36185:26477,36186:26657,36187:26775,36188:27083,36189:27743,36190:27946,36191:28009,36192:28207,36193:28317,36194:30002,36195:30343,36196:30828,36197:31295,36198:31968,36199:32005,36200:32024,36201:32094,36202:32177,36203:32789,36204:32771,36205:32943,36206:32945,36207:33108,36208:33167,36209:33322,36210:33618,36211:34892,36212:34913,36213:35611,36214:36002,36215:36092,36216:37066,36217:37237,36218:37489,36219:30783,36220:37628,36221:38308,36222:38477,36224:38917,36225:39321,36226:39640,36227:40251,36228:21083,36229:21163,36230:21495,36231:21512,36232:22741,36233:25335,36234:28640,36235:35946,36236:36703,36237:40633,36238:20811,36239:21051,36240:21578,36241:22269,36242:31296,36243:37239,36244:40288,36245:40658,36246:29508,36247:28425,36248:33136,36249:29969,36250:24573,36251:24794,36252:39592,36253:29403,36254:36796,36255:27492,36256:38915,36257:20170,36258:22256,36259:22372,36260:22718,36261:23130,36262:24680,36263:25031,36264:26127,36265:26118,36266:26681,36267:26801,36268:28151,36269:30165,36270:32058,36271:33390,36272:39746,36273:20123,36274:20304,36275:21449,36276:21766,36277:23919,36278:24038,36279:24046,36280:26619,36281:27801,36282:29811,36283:30722,36284:35408,36285:37782,36286:35039,36287:22352,36288:24231,36289:25387,36290:20661,36291:20652,36292:20877,36293:26368,36294:21705,36295:22622,36296:22971,36297:23472,36298:24425,36299:25165,36300:25505,36301:26685,36302:27507,36303:28168,36304:28797,36305:37319,36306:29312,36307:30741,36308:30758,36309:31085,36310:25998,36311:32048,36312:33756,36313:35009,36314:36617,36315:38555,36316:21092,36317:22312,36318:26448,36319:32618,36320:36001,36321:20916,36322:22338,36323:38442,36324:22586,36325:27018,36326:32948,36327:21682,36328:23822,36329:22524,36330:30869,36331:40442,36332:20316,36333:21066,36334:21643,36335:25662,36336:26152,36337:26388,36338:26613,36339:31364,36340:31574,36341:32034,36342:37679,36343:26716,36344:39853,36345:31545,36346:21273,36347:20874,36348:21047,36416:23519,36417:25334,36418:25774,36419:25830,36420:26413,36421:27578,36422:34217,36423:38609,36424:30352,36425:39894,36426:25420,36427:37638,36428:39851,36429:30399,36430:26194,36431:19977,36432:20632,36433:21442,36434:23665,36435:24808,36436:25746,36437:25955,36438:26719,36439:29158,36440:29642,36441:29987,36442:31639,36443:32386,36444:34453,36445:35715,36446:36059,36447:37240,36448:39184,36449:26028,36450:26283,36451:27531,36452:20181,36453:20180,36454:20282,36455:20351,36456:21050,36457:21496,36458:21490,36459:21987,36460:22235,36461:22763,36462:22987,36463:22985,36464:23039,36465:23376,36466:23629,36467:24066,36468:24107,36469:24535,36470:24605,36471:25351,36472:25903,36473:23388,36474:26031,36475:26045,36476:26088,36477:26525,36478:27490,36480:27515,36481:27663,36482:29509,36483:31049,36484:31169,36485:31992,36486:32025,36487:32043,36488:32930,36489:33026,36490:33267,36491:35222,36492:35422,36493:35433,36494:35430,36495:35468,36496:35566,36497:36039,36498:36060,36499:38604,36500:39164,36501:27503,36502:20107,36503:20284,36504:20365,36505:20816,36506:23383,36507:23546,36508:24904,36509:25345,36510:26178,36511:27425,36512:28363,36513:27835,36514:29246,36515:29885,36516:30164,36517:30913,36518:31034,36519:32780,36520:32819,36521:33258,36522:33940,36523:36766,36524:27728,36525:40575,36526:24335,36527:35672,36528:40235,36529:31482,36530:36600,36531:23437,36532:38635,36533:19971,36534:21489,36535:22519,36536:22833,36537:23241,36538:23460,36539:24713,36540:28287,36541:28422,36542:30142,36543:36074,36544:23455,36545:34048,36546:31712,36547:20594,36548:26612,36549:33437,36550:23649,36551:34122,36552:32286,36553:33294,36554:20889,36555:23556,36556:25448,36557:36198,36558:26012,36559:29038,36560:31038,36561:32023,36562:32773,36563:35613,36564:36554,36565:36974,36566:34503,36567:37034,36568:20511,36569:21242,36570:23610,36571:26451,36572:28796,36573:29237,36574:37196,36575:37320,36576:37675,36577:33509,36578:23490,36579:24369,36580:24825,36581:20027,36582:21462,36583:23432,36584:25163,36585:26417,36586:27530,36587:29417,36588:29664,36589:31278,36590:33131,36591:36259,36592:37202,36593:39318,36594:20754,36595:21463,36596:21610,36597:23551,36598:25480,36599:27193,36600:32172,36601:38656,36602:22234,36603:21454,36604:21608,36672:23447,36673:23601,36674:24030,36675:20462,36676:24833,36677:25342,36678:27954,36679:31168,36680:31179,36681:32066,36682:32333,36683:32722,36684:33261,36685:33311,36686:33936,36687:34886,36688:35186,36689:35728,36690:36468,36691:36655,36692:36913,36693:37195,36694:37228,36695:38598,36696:37276,36697:20160,36698:20303,36699:20805,36700:21313,36701:24467,36702:25102,36703:26580,36704:27713,36705:28171,36706:29539,36707:32294,36708:37325,36709:37507,36710:21460,36711:22809,36712:23487,36713:28113,36714:31069,36715:32302,36716:31899,36717:22654,36718:29087,36719:20986,36720:34899,36721:36848,36722:20426,36723:23803,36724:26149,36725:30636,36726:31459,36727:33308,36728:39423,36729:20934,36730:24490,36731:26092,36732:26991,36733:27529,36734:28147,36736:28310,36737:28516,36738:30462,36739:32020,36740:24033,36741:36981,36742:37255,36743:38918,36744:20966,36745:21021,36746:25152,36747:26257,36748:26329,36749:28186,36750:24246,36751:32210,36752:32626,36753:26360,36754:34223,36755:34295,36756:35576,36757:21161,36758:21465,36759:22899,36760:24207,36761:24464,36762:24661,36763:37604,36764:38500,36765:20663,36766:20767,36767:21213,36768:21280,36769:21319,36770:21484,36771:21736,36772:21830,36773:21809,36774:22039,36775:22888,36776:22974,36777:23100,36778:23477,36779:23558,36780:23567,36781:23569,36782:23578,36783:24196,36784:24202,36785:24288,36786:24432,36787:25215,36788:25220,36789:25307,36790:25484,36791:25463,36792:26119,36793:26124,36794:26157,36795:26230,36796:26494,36797:26786,36798:27167,36799:27189,36800:27836,36801:28040,36802:28169,36803:28248,36804:28988,36805:28966,36806:29031,36807:30151,36808:30465,36809:30813,36810:30977,36811:31077,36812:31216,36813:31456,36814:31505,36815:31911,36816:32057,36817:32918,36818:33750,36819:33931,36820:34121,36821:34909,36822:35059,36823:35359,36824:35388,36825:35412,36826:35443,36827:35937,36828:36062,36829:37284,36830:37478,36831:37758,36832:37912,36833:38556,36834:38808,36835:19978,36836:19976,36837:19998,36838:20055,36839:20887,36840:21104,36841:22478,36842:22580,36843:22732,36844:23330,36845:24120,36846:24773,36847:25854,36848:26465,36849:26454,36850:27972,36851:29366,36852:30067,36853:31331,36854:33976,36855:35698,36856:37304,36857:37664,36858:22065,36859:22516,36860:39166,36928:25325,36929:26893,36930:27542,36931:29165,36932:32340,36933:32887,36934:33394,36935:35302,36936:39135,36937:34645,36938:36785,36939:23611,36940:20280,36941:20449,36942:20405,36943:21767,36944:23072,36945:23517,36946:23529,36947:24515,36948:24910,36949:25391,36950:26032,36951:26187,36952:26862,36953:27035,36954:28024,36955:28145,36956:30003,36957:30137,36958:30495,36959:31070,36960:31206,36961:32051,36962:33251,36963:33455,36964:34218,36965:35242,36966:35386,36967:36523,36968:36763,36969:36914,36970:37341,36971:38663,36972:20154,36973:20161,36974:20995,36975:22645,36976:22764,36977:23563,36978:29978,36979:23613,36980:33102,36981:35338,36982:36805,36983:38499,36984:38765,36985:31525,36986:35535,36987:38920,36988:37218,36989:22259,36990:21416,36992:36887,36993:21561,36994:22402,36995:24101,36996:25512,36997:27700,36998:28810,36999:30561,37e3:31883,37001:32736,37002:34928,37003:36930,37004:37204,37005:37648,37006:37656,37007:38543,37008:29790,37009:39620,37010:23815,37011:23913,37012:25968,37013:26530,37014:36264,37015:38619,37016:25454,37017:26441,37018:26905,37019:33733,37020:38935,37021:38592,37022:35070,37023:28548,37024:25722,37025:23544,37026:19990,37027:28716,37028:30045,37029:26159,37030:20932,37031:21046,37032:21218,37033:22995,37034:24449,37035:24615,37036:25104,37037:25919,37038:25972,37039:26143,37040:26228,37041:26866,37042:26646,37043:27491,37044:28165,37045:29298,37046:29983,37047:30427,37048:31934,37049:32854,37050:22768,37051:35069,37052:35199,37053:35488,37054:35475,37055:35531,37056:36893,37057:37266,37058:38738,37059:38745,37060:25993,37061:31246,37062:33030,37063:38587,37064:24109,37065:24796,37066:25114,37067:26021,37068:26132,37069:26512,37070:30707,37071:31309,37072:31821,37073:32318,37074:33034,37075:36012,37076:36196,37077:36321,37078:36447,37079:30889,37080:20999,37081:25305,37082:25509,37083:25666,37084:25240,37085:35373,37086:31363,37087:31680,37088:35500,37089:38634,37090:32118,37091:33292,37092:34633,37093:20185,37094:20808,37095:21315,37096:21344,37097:23459,37098:23554,37099:23574,37100:24029,37101:25126,37102:25159,37103:25776,37104:26643,37105:26676,37106:27849,37107:27973,37108:27927,37109:26579,37110:28508,37111:29006,37112:29053,37113:26059,37114:31359,37115:31661,37116:32218,37184:32330,37185:32680,37186:33146,37187:33307,37188:33337,37189:34214,37190:35438,37191:36046,37192:36341,37193:36984,37194:36983,37195:37549,37196:37521,37197:38275,37198:39854,37199:21069,37200:21892,37201:28472,37202:28982,37203:20840,37204:31109,37205:32341,37206:33203,37207:31950,37208:22092,37209:22609,37210:23720,37211:25514,37212:26366,37213:26365,37214:26970,37215:29401,37216:30095,37217:30094,37218:30990,37219:31062,37220:31199,37221:31895,37222:32032,37223:32068,37224:34311,37225:35380,37226:38459,37227:36961,37228:40736,37229:20711,37230:21109,37231:21452,37232:21474,37233:20489,37234:21930,37235:22766,37236:22863,37237:29245,37238:23435,37239:23652,37240:21277,37241:24803,37242:24819,37243:25436,37244:25475,37245:25407,37246:25531,37248:25805,37249:26089,37250:26361,37251:24035,37252:27085,37253:27133,37254:28437,37255:29157,37256:20105,37257:30185,37258:30456,37259:31379,37260:31967,37261:32207,37262:32156,37263:32865,37264:33609,37265:33624,37266:33900,37267:33980,37268:34299,37269:35013,37270:36208,37271:36865,37272:36973,37273:37783,37274:38684,37275:39442,37276:20687,37277:22679,37278:24974,37279:33235,37280:34101,37281:36104,37282:36896,37283:20419,37284:20596,37285:21063,37286:21363,37287:24687,37288:25417,37289:26463,37290:28204,37291:36275,37292:36895,37293:20439,37294:23646,37295:36042,37296:26063,37297:32154,37298:21330,37299:34966,37300:20854,37301:25539,37302:23384,37303:23403,37304:23562,37305:25613,37306:26449,37307:36956,37308:20182,37309:22810,37310:22826,37311:27760,37312:35409,37313:21822,37314:22549,37315:22949,37316:24816,37317:25171,37318:26561,37319:33333,37320:26965,37321:38464,37322:39364,37323:39464,37324:20307,37325:22534,37326:23550,37327:32784,37328:23729,37329:24111,37330:24453,37331:24608,37332:24907,37333:25140,37334:26367,37335:27888,37336:28382,37337:32974,37338:33151,37339:33492,37340:34955,37341:36024,37342:36864,37343:36910,37344:38538,37345:40667,37346:39899,37347:20195,37348:21488,37349:22823,37350:31532,37351:37261,37352:38988,37353:40441,37354:28381,37355:28711,37356:21331,37357:21828,37358:23429,37359:25176,37360:25246,37361:25299,37362:27810,37363:28655,37364:29730,37365:35351,37366:37944,37367:28609,37368:35582,37369:33592,37370:20967,37371:34552,37372:21482,37440:21481,37441:20294,37442:36948,37443:36784,37444:22890,37445:33073,37446:24061,37447:31466,37448:36799,37449:26842,37450:35895,37451:29432,37452:40008,37453:27197,37454:35504,37455:20025,37456:21336,37457:22022,37458:22374,37459:25285,37460:25506,37461:26086,37462:27470,37463:28129,37464:28251,37465:28845,37466:30701,37467:31471,37468:31658,37469:32187,37470:32829,37471:32966,37472:34507,37473:35477,37474:37723,37475:22243,37476:22727,37477:24382,37478:26029,37479:26262,37480:27264,37481:27573,37482:30007,37483:35527,37484:20516,37485:30693,37486:22320,37487:24347,37488:24677,37489:26234,37490:27744,37491:30196,37492:31258,37493:32622,37494:33268,37495:34584,37496:36933,37497:39347,37498:31689,37499:30044,37500:31481,37501:31569,37502:33988,37504:36880,37505:31209,37506:31378,37507:33590,37508:23265,37509:30528,37510:20013,37511:20210,37512:23449,37513:24544,37514:25277,37515:26172,37516:26609,37517:27880,37518:34411,37519:34935,37520:35387,37521:37198,37522:37619,37523:39376,37524:27159,37525:28710,37526:29482,37527:33511,37528:33879,37529:36015,37530:19969,37531:20806,37532:20939,37533:21899,37534:23541,37535:24086,37536:24115,37537:24193,37538:24340,37539:24373,37540:24427,37541:24500,37542:25074,37543:25361,37544:26274,37545:26397,37546:28526,37547:29266,37548:30010,37549:30522,37550:32884,37551:33081,37552:33144,37553:34678,37554:35519,37555:35548,37556:36229,37557:36339,37558:37530,37559:38263,37560:38914,37561:40165,37562:21189,37563:25431,37564:30452,37565:26389,37566:27784,37567:29645,37568:36035,37569:37806,37570:38515,37571:27941,37572:22684,37573:26894,37574:27084,37575:36861,37576:37786,37577:30171,37578:36890,37579:22618,37580:26626,37581:25524,37582:27131,37583:20291,37584:28460,37585:26584,37586:36795,37587:34086,37588:32180,37589:37716,37590:26943,37591:28528,37592:22378,37593:22775,37594:23340,37595:32044,37596:29226,37597:21514,37598:37347,37599:40372,37600:20141,37601:20302,37602:20572,37603:20597,37604:21059,37605:35998,37606:21576,37607:22564,37608:23450,37609:24093,37610:24213,37611:24237,37612:24311,37613:24351,37614:24716,37615:25269,37616:25402,37617:25552,37618:26799,37619:27712,37620:30855,37621:31118,37622:31243,37623:32224,37624:33351,37625:35330,37626:35558,37627:36420,37628:36883,37696:37048,37697:37165,37698:37336,37699:40718,37700:27877,37701:25688,37702:25826,37703:25973,37704:28404,37705:30340,37706:31515,37707:36969,37708:37841,37709:28346,37710:21746,37711:24505,37712:25764,37713:36685,37714:36845,37715:37444,37716:20856,37717:22635,37718:22825,37719:23637,37720:24215,37721:28155,37722:32399,37723:29980,37724:36028,37725:36578,37726:39003,37727:28857,37728:20253,37729:27583,37730:28593,37731:3e4,37732:38651,37733:20814,37734:21520,37735:22581,37736:22615,37737:22956,37738:23648,37739:24466,37740:26007,37741:26460,37742:28193,37743:30331,37744:33759,37745:36077,37746:36884,37747:37117,37748:37709,37749:30757,37750:30778,37751:21162,37752:24230,37753:22303,37754:22900,37755:24594,37756:20498,37757:20826,37758:20908,37760:20941,37761:20992,37762:21776,37763:22612,37764:22616,37765:22871,37766:23445,37767:23798,37768:23947,37769:24764,37770:25237,37771:25645,37772:26481,37773:26691,37774:26812,37775:26847,37776:30423,37777:28120,37778:28271,37779:28059,37780:28783,37781:29128,37782:24403,37783:30168,37784:31095,37785:31561,37786:31572,37787:31570,37788:31958,37789:32113,37790:21040,37791:33891,37792:34153,37793:34276,37794:35342,37795:35588,37796:35910,37797:36367,37798:36867,37799:36879,37800:37913,37801:38518,37802:38957,37803:39472,37804:38360,37805:20685,37806:21205,37807:21516,37808:22530,37809:23566,37810:24999,37811:25758,37812:27934,37813:30643,37814:31461,37815:33012,37816:33796,37817:36947,37818:37509,37819:23776,37820:40199,37821:21311,37822:24471,37823:24499,37824:28060,37825:29305,37826:30563,37827:31167,37828:31716,37829:27602,37830:29420,37831:35501,37832:26627,37833:27233,37834:20984,37835:31361,37836:26932,37837:23626,37838:40182,37839:33515,37840:23493,37841:37193,37842:28702,37843:22136,37844:23663,37845:24775,37846:25958,37847:27788,37848:35930,37849:36929,37850:38931,37851:21585,37852:26311,37853:37389,37854:22856,37855:37027,37856:20869,37857:20045,37858:20970,37859:34201,37860:35598,37861:28760,37862:25466,37863:37707,37864:26978,37865:39348,37866:32260,37867:30071,37868:21335,37869:26976,37870:36575,37871:38627,37872:27741,37873:20108,37874:23612,37875:24336,37876:36841,37877:21250,37878:36049,37879:32905,37880:34425,37881:24319,37882:26085,37883:20083,37884:20837,37952:22914,37953:23615,37954:38894,37955:20219,37956:22922,37957:24525,37958:35469,37959:28641,37960:31152,37961:31074,37962:23527,37963:33905,37964:29483,37965:29105,37966:24180,37967:24565,37968:25467,37969:25754,37970:29123,37971:31896,37972:20035,37973:24316,37974:20043,37975:22492,37976:22178,37977:24745,37978:28611,37979:32013,37980:33021,37981:33075,37982:33215,37983:36786,37984:35223,37985:34468,37986:24052,37987:25226,37988:25773,37989:35207,37990:26487,37991:27874,37992:27966,37993:29750,37994:30772,37995:23110,37996:32629,37997:33453,37998:39340,37999:20467,38e3:24259,38001:25309,38002:25490,38003:25943,38004:26479,38005:30403,38006:29260,38007:32972,38008:32954,38009:36649,38010:37197,38011:20493,38012:22521,38013:23186,38014:26757,38016:26995,38017:29028,38018:29437,38019:36023,38020:22770,38021:36064,38022:38506,38023:36889,38024:34687,38025:31204,38026:30695,38027:33833,38028:20271,38029:21093,38030:21338,38031:25293,38032:26575,38033:27850,38034:30333,38035:31636,38036:31893,38037:33334,38038:34180,38039:36843,38040:26333,38041:28448,38042:29190,38043:32283,38044:33707,38045:39361,38046:40614,38047:20989,38048:31665,38049:30834,38050:31672,38051:32903,38052:31560,38053:27368,38054:24161,38055:32908,38056:30033,38057:30048,38058:20843,38059:37474,38060:28300,38061:30330,38062:37271,38063:39658,38064:20240,38065:32624,38066:25244,38067:31567,38068:38309,38069:40169,38070:22138,38071:22617,38072:34532,38073:38588,38074:20276,38075:21028,38076:21322,38077:21453,38078:21467,38079:24070,38080:25644,38081:26001,38082:26495,38083:27710,38084:27726,38085:29256,38086:29359,38087:29677,38088:30036,38089:32321,38090:33324,38091:34281,38092:36009,38093:31684,38094:37318,38095:29033,38096:38930,38097:39151,38098:25405,38099:26217,38100:30058,38101:30436,38102:30928,38103:34115,38104:34542,38105:21290,38106:21329,38107:21542,38108:22915,38109:24199,38110:24444,38111:24754,38112:25161,38113:25209,38114:25259,38115:26e3,38116:27604,38117:27852,38118:30130,38119:30382,38120:30865,38121:31192,38122:32203,38123:32631,38124:32933,38125:34987,38126:35513,38127:36027,38128:36991,38129:38750,38130:39131,38131:27147,38132:31800,38133:20633,38134:23614,38135:24494,38136:26503,38137:27608,38138:29749,38139:30473,38140:32654,38208:40763,38209:26570,38210:31255,38211:21305,38212:30091,38213:39661,38214:24422,38215:33181,38216:33777,38217:32920,38218:24380,38219:24517,38220:30050,38221:31558,38222:36924,38223:26727,38224:23019,38225:23195,38226:32016,38227:30334,38228:35628,38229:20469,38230:24426,38231:27161,38232:27703,38233:28418,38234:29922,38235:31080,38236:34920,38237:35413,38238:35961,38239:24287,38240:25551,38241:30149,38242:31186,38243:33495,38244:37672,38245:37618,38246:33948,38247:34541,38248:39981,38249:21697,38250:24428,38251:25996,38252:27996,38253:28693,38254:36007,38255:36051,38256:38971,38257:25935,38258:29942,38259:19981,38260:20184,38261:22496,38262:22827,38263:23142,38264:23500,38265:20904,38266:24067,38267:24220,38268:24598,38269:25206,38270:25975,38272:26023,38273:26222,38274:28014,38275:29238,38276:31526,38277:33104,38278:33178,38279:33433,38280:35676,38281:36e3,38282:36070,38283:36212,38284:38428,38285:38468,38286:20398,38287:25771,38288:27494,38289:33310,38290:33889,38291:34154,38292:37096,38293:23553,38294:26963,38295:39080,38296:33914,38297:34135,38298:20239,38299:21103,38300:24489,38301:24133,38302:26381,38303:31119,38304:33145,38305:35079,38306:35206,38307:28149,38308:24343,38309:25173,38310:27832,38311:20175,38312:29289,38313:39826,38314:20998,38315:21563,38316:22132,38317:22707,38318:24996,38319:25198,38320:28954,38321:22894,38322:31881,38323:31966,38324:32027,38325:38640,38326:25991,38327:32862,38328:19993,38329:20341,38330:20853,38331:22592,38332:24163,38333:24179,38334:24330,38335:26564,38336:20006,38337:34109,38338:38281,38339:38491,38340:31859,38341:38913,38342:20731,38343:22721,38344:30294,38345:30887,38346:21029,38347:30629,38348:34065,38349:31622,38350:20559,38351:22793,38352:29255,38353:31687,38354:32232,38355:36794,38356:36820,38357:36941,38358:20415,38359:21193,38360:23081,38361:24321,38362:38829,38363:20445,38364:33303,38365:37610,38366:22275,38367:25429,38368:27497,38369:29995,38370:35036,38371:36628,38372:31298,38373:21215,38374:22675,38375:24917,38376:25098,38377:26286,38378:27597,38379:31807,38380:33769,38381:20515,38382:20472,38383:21253,38384:21574,38385:22577,38386:22857,38387:23453,38388:23792,38389:23791,38390:23849,38391:24214,38392:25265,38393:25447,38394:25918,38395:26041,38396:26379,38464:27861,38465:27873,38466:28921,38467:30770,38468:32299,38469:32990,38470:33459,38471:33804,38472:34028,38473:34562,38474:35090,38475:35370,38476:35914,38477:37030,38478:37586,38479:39165,38480:40179,38481:40300,38482:20047,38483:20129,38484:20621,38485:21078,38486:22346,38487:22952,38488:24125,38489:24536,38490:24537,38491:25151,38492:26292,38493:26395,38494:26576,38495:26834,38496:20882,38497:32033,38498:32938,38499:33192,38500:35584,38501:35980,38502:36031,38503:37502,38504:38450,38505:21536,38506:38956,38507:21271,38508:20693,38509:21340,38510:22696,38511:25778,38512:26420,38513:29287,38514:30566,38515:31302,38516:37350,38517:21187,38518:27809,38519:27526,38520:22528,38521:24140,38522:22868,38523:26412,38524:32763,38525:20961,38526:30406,38528:25705,38529:30952,38530:39764,38531:40635,38532:22475,38533:22969,38534:26151,38535:26522,38536:27598,38537:21737,38538:27097,38539:24149,38540:33180,38541:26517,38542:39850,38543:26622,38544:40018,38545:26717,38546:20134,38547:20451,38548:21448,38549:25273,38550:26411,38551:27819,38552:36804,38553:20397,38554:32365,38555:40639,38556:19975,38557:24930,38558:28288,38559:28459,38560:34067,38561:21619,38562:26410,38563:39749,38564:24051,38565:31637,38566:23724,38567:23494,38568:34588,38569:28234,38570:34001,38571:31252,38572:33032,38573:22937,38574:31885,38575:27665,38576:30496,38577:21209,38578:22818,38579:28961,38580:29279,38581:30683,38582:38695,38583:40289,38584:26891,38585:23167,38586:23064,38587:20901,38588:21517,38589:21629,38590:26126,38591:30431,38592:36855,38593:37528,38594:40180,38595:23018,38596:29277,38597:28357,38598:20813,38599:26825,38600:32191,38601:32236,38602:38754,38603:40634,38604:25720,38605:27169,38606:33538,38607:22916,38608:23391,38609:27611,38610:29467,38611:30450,38612:32178,38613:32791,38614:33945,38615:20786,38616:26408,38617:40665,38618:30446,38619:26466,38620:21247,38621:39173,38622:23588,38623:25147,38624:31870,38625:36016,38626:21839,38627:24758,38628:32011,38629:38272,38630:21249,38631:20063,38632:20918,38633:22812,38634:29242,38635:32822,38636:37326,38637:24357,38638:30690,38639:21380,38640:24441,38641:32004,38642:34220,38643:35379,38644:36493,38645:38742,38646:26611,38647:34222,38648:37971,38649:24841,38650:24840,38651:27833,38652:30290,38720:35565,38721:36664,38722:21807,38723:20305,38724:20778,38725:21191,38726:21451,38727:23461,38728:24189,38729:24736,38730:24962,38731:25558,38732:26377,38733:26586,38734:28263,38735:28044,38736:29494,38737:29495,38738:30001,38739:31056,38740:35029,38741:35480,38742:36938,38743:37009,38744:37109,38745:38596,38746:34701,38747:22805,38748:20104,38749:20313,38750:19982,38751:35465,38752:36671,38753:38928,38754:20653,38755:24188,38756:22934,38757:23481,38758:24248,38759:25562,38760:25594,38761:25793,38762:26332,38763:26954,38764:27096,38765:27915,38766:28342,38767:29076,38768:29992,38769:31407,38770:32650,38771:32768,38772:33865,38773:33993,38774:35201,38775:35617,38776:36362,38777:36965,38778:38525,38779:39178,38780:24958,38781:25233,38782:27442,38784:27779,38785:28020,38786:32716,38787:32764,38788:28096,38789:32645,38790:34746,38791:35064,38792:26469,38793:33713,38794:38972,38795:38647,38796:27931,38797:32097,38798:33853,38799:37226,38800:20081,38801:21365,38802:23888,38803:27396,38804:28651,38805:34253,38806:34349,38807:35239,38808:21033,38809:21519,38810:23653,38811:26446,38812:26792,38813:29702,38814:29827,38815:30178,38816:35023,38817:35041,38818:37324,38819:38626,38820:38520,38821:24459,38822:29575,38823:31435,38824:33870,38825:25504,38826:30053,38827:21129,38828:27969,38829:28316,38830:29705,38831:30041,38832:30827,38833:31890,38834:38534,38835:31452,38836:40845,38837:20406,38838:24942,38839:26053,38840:34396,38841:20102,38842:20142,38843:20698,38844:20001,38845:20940,38846:23534,38847:26009,38848:26753,38849:28092,38850:29471,38851:30274,38852:30637,38853:31260,38854:31975,38855:33391,38856:35538,38857:36988,38858:37327,38859:38517,38860:38936,38861:21147,38862:32209,38863:20523,38864:21400,38865:26519,38866:28107,38867:29136,38868:29747,38869:33256,38870:36650,38871:38563,38872:40023,38873:40607,38874:29792,38875:22593,38876:28057,38877:32047,38878:39006,38879:20196,38880:20278,38881:20363,38882:20919,38883:21169,38884:23994,38885:24604,38886:29618,38887:31036,38888:33491,38889:37428,38890:38583,38891:38646,38892:38666,38893:40599,38894:40802,38895:26278,38896:27508,38897:21015,38898:21155,38899:28872,38900:35010,38901:24265,38902:24651,38903:24976,38904:28451,38905:29001,38906:31806,38907:32244,38908:32879,38976:34030,38977:36899,38978:37676,38979:21570,38980:39791,38981:27347,38982:28809,38983:36034,38984:36335,38985:38706,38986:21172,38987:23105,38988:24266,38989:24324,38990:26391,38991:27004,38992:27028,38993:28010,38994:28431,38995:29282,38996:29436,38997:31725,38998:32769,38999:32894,39e3:34635,39001:37070,39002:20845,39003:40595,39004:31108,39005:32907,39006:37682,39007:35542,39008:20525,39009:21644,39010:35441,39011:27498,39012:36036,39013:33031,39014:24785,39015:26528,39016:40434,39017:20121,39018:20120,39019:39952,39020:35435,39021:34241,39022:34152,39023:26880,39024:28286,39025:30871,39026:33109,39071:24332,39072:19984,39073:19989,39074:20010,39075:20017,39076:20022,39077:20028,39078:20031,39079:20034,39080:20054,39081:20056,39082:20098,39083:20101,39084:35947,39085:20106,39086:33298,39087:24333,39088:20110,39089:20126,39090:20127,39091:20128,39092:20130,39093:20144,39094:20147,39095:20150,39096:20174,39097:20173,39098:20164,39099:20166,39100:20162,39101:20183,39102:20190,39103:20205,39104:20191,39105:20215,39106:20233,39107:20314,39108:20272,39109:20315,39110:20317,39111:20311,39112:20295,39113:20342,39114:20360,39115:20367,39116:20376,39117:20347,39118:20329,39119:20336,39120:20369,39121:20335,39122:20358,39123:20374,39124:20760,39125:20436,39126:20447,39127:20430,39128:20440,39129:20443,39130:20433,39131:20442,39132:20432,39133:20452,39134:20453,39135:20506,39136:20520,39137:20500,39138:20522,39139:20517,39140:20485,39141:20252,39142:20470,39143:20513,39144:20521,39145:20524,39146:20478,39147:20463,39148:20497,39149:20486,39150:20547,39151:20551,39152:26371,39153:20565,39154:20560,39155:20552,39156:20570,39157:20566,39158:20588,39159:20600,39160:20608,39161:20634,39162:20613,39163:20660,39164:20658,39232:20681,39233:20682,39234:20659,39235:20674,39236:20694,39237:20702,39238:20709,39239:20717,39240:20707,39241:20718,39242:20729,39243:20725,39244:20745,39245:20737,39246:20738,39247:20758,39248:20757,39249:20756,39250:20762,39251:20769,39252:20794,39253:20791,39254:20796,39255:20795,39256:20799,39257:20800,39258:20818,39259:20812,39260:20820,39261:20834,39262:31480,39263:20841,39264:20842,39265:20846,39266:20864,39267:20866,39268:22232,39269:20876,39270:20873,39271:20879,39272:20881,39273:20883,39274:20885,39275:20886,39276:20900,39277:20902,39278:20898,39279:20905,39280:20906,39281:20907,39282:20915,39283:20913,39284:20914,39285:20912,39286:20917,39287:20925,39288:20933,39289:20937,39290:20955,39291:20960,39292:34389,39293:20969,39294:20973,39296:20976,39297:20981,39298:20990,39299:20996,39300:21003,39301:21012,39302:21006,39303:21031,39304:21034,39305:21038,39306:21043,39307:21049,39308:21071,39309:21060,39310:21067,39311:21068,39312:21086,39313:21076,39314:21098,39315:21108,39316:21097,39317:21107,39318:21119,39319:21117,39320:21133,39321:21140,39322:21138,39323:21105,39324:21128,39325:21137,39326:36776,39327:36775,39328:21164,39329:21165,39330:21180,39331:21173,39332:21185,39333:21197,39334:21207,39335:21214,39336:21219,39337:21222,39338:39149,39339:21216,39340:21235,39341:21237,39342:21240,39343:21241,39344:21254,39345:21256,39346:30008,39347:21261,39348:21264,39349:21263,39350:21269,39351:21274,39352:21283,39353:21295,39354:21297,39355:21299,39356:21304,39357:21312,39358:21318,39359:21317,39360:19991,39361:21321,39362:21325,39363:20950,39364:21342,39365:21353,39366:21358,39367:22808,39368:21371,39369:21367,39370:21378,39371:21398,39372:21408,39373:21414,39374:21413,39375:21422,39376:21424,39377:21430,39378:21443,39379:31762,39380:38617,39381:21471,39382:26364,39383:29166,39384:21486,39385:21480,39386:21485,39387:21498,39388:21505,39389:21565,39390:21568,39391:21548,39392:21549,39393:21564,39394:21550,39395:21558,39396:21545,39397:21533,39398:21582,39399:21647,39400:21621,39401:21646,39402:21599,39403:21617,39404:21623,39405:21616,39406:21650,39407:21627,39408:21632,39409:21622,39410:21636,39411:21648,39412:21638,39413:21703,39414:21666,39415:21688,39416:21669,39417:21676,39418:21700,39419:21704,39420:21672,39488:21675,39489:21698,39490:21668,39491:21694,39492:21692,39493:21720,39494:21733,39495:21734,39496:21775,39497:21780,39498:21757,39499:21742,39500:21741,39501:21754,39502:21730,39503:21817,39504:21824,39505:21859,39506:21836,39507:21806,39508:21852,39509:21829,39510:21846,39511:21847,39512:21816,39513:21811,39514:21853,39515:21913,39516:21888,39517:21679,39518:21898,39519:21919,39520:21883,39521:21886,39522:21912,39523:21918,39524:21934,39525:21884,39526:21891,39527:21929,39528:21895,39529:21928,39530:21978,39531:21957,39532:21983,39533:21956,39534:21980,39535:21988,39536:21972,39537:22036,39538:22007,39539:22038,39540:22014,39541:22013,39542:22043,39543:22009,39544:22094,39545:22096,39546:29151,39547:22068,39548:22070,39549:22066,39550:22072,39552:22123,39553:22116,39554:22063,39555:22124,39556:22122,39557:22150,39558:22144,39559:22154,39560:22176,39561:22164,39562:22159,39563:22181,39564:22190,39565:22198,39566:22196,39567:22210,39568:22204,39569:22209,39570:22211,39571:22208,39572:22216,39573:22222,39574:22225,39575:22227,39576:22231,39577:22254,39578:22265,39579:22272,39580:22271,39581:22276,39582:22281,39583:22280,39584:22283,39585:22285,39586:22291,39587:22296,39588:22294,39589:21959,39590:22300,39591:22310,39592:22327,39593:22328,39594:22350,39595:22331,39596:22336,39597:22351,39598:22377,39599:22464,39600:22408,39601:22369,39602:22399,39603:22409,39604:22419,39605:22432,39606:22451,39607:22436,39608:22442,39609:22448,39610:22467,39611:22470,39612:22484,39613:22482,39614:22483,39615:22538,39616:22486,39617:22499,39618:22539,39619:22553,39620:22557,39621:22642,39622:22561,39623:22626,39624:22603,39625:22640,39626:27584,39627:22610,39628:22589,39629:22649,39630:22661,39631:22713,39632:22687,39633:22699,39634:22714,39635:22750,39636:22715,39637:22712,39638:22702,39639:22725,39640:22739,39641:22737,39642:22743,39643:22745,39644:22744,39645:22757,39646:22748,39647:22756,39648:22751,39649:22767,39650:22778,39651:22777,39652:22779,39653:22780,39654:22781,39655:22786,39656:22794,39657:22800,39658:22811,39659:26790,39660:22821,39661:22828,39662:22829,39663:22834,39664:22840,39665:22846,39666:31442,39667:22869,39668:22864,39669:22862,39670:22874,39671:22872,39672:22882,39673:22880,\\n39674:22887,39675:22892,39676:22889,39744:22904,39745:22913,39746:22941,39747:20318,39748:20395,39749:22947,39750:22962,39751:22982,39752:23016,39753:23004,39754:22925,39755:23001,39756:23002,39757:23077,39758:23071,39759:23057,39760:23068,39761:23049,39762:23066,39763:23104,39764:23148,39765:23113,39766:23093,39767:23094,39768:23138,39769:23146,39770:23194,39771:23228,39772:23230,39773:23243,39774:23234,39775:23229,39776:23267,39777:23255,39778:23270,39779:23273,39780:23254,39781:23290,39782:23291,39783:23308,39784:23307,39785:23318,39786:23346,39787:23248,39788:23338,39789:23350,39790:23358,39791:23363,39792:23365,39793:23360,39794:23377,39795:23381,39796:23386,39797:23387,39798:23397,39799:23401,39800:23408,39801:23411,39802:23413,39803:23416,39804:25992,39805:23418,39806:23424,39808:23427,39809:23462,39810:23480,39811:23491,39812:23495,39813:23497,39814:23508,39815:23504,39816:23524,39817:23526,39818:23522,39819:23518,39820:23525,39821:23531,39822:23536,39823:23542,39824:23539,39825:23557,39826:23559,39827:23560,39828:23565,39829:23571,39830:23584,39831:23586,39832:23592,39833:23608,39834:23609,39835:23617,39836:23622,39837:23630,39838:23635,39839:23632,39840:23631,39841:23409,39842:23660,39843:23662,39844:20066,39845:23670,39846:23673,39847:23692,39848:23697,39849:23700,39850:22939,39851:23723,39852:23739,39853:23734,39854:23740,39855:23735,39856:23749,39857:23742,39858:23751,39859:23769,39860:23785,39861:23805,39862:23802,39863:23789,39864:23948,39865:23786,39866:23819,39867:23829,39868:23831,39869:23900,39870:23839,39871:23835,39872:23825,39873:23828,39874:23842,39875:23834,39876:23833,39877:23832,39878:23884,39879:23890,39880:23886,39881:23883,39882:23916,39883:23923,39884:23926,39885:23943,39886:23940,39887:23938,39888:23970,39889:23965,39890:23980,39891:23982,39892:23997,39893:23952,39894:23991,39895:23996,39896:24009,39897:24013,39898:24019,39899:24018,39900:24022,39901:24027,39902:24043,39903:24050,39904:24053,39905:24075,39906:24090,39907:24089,39908:24081,39909:24091,39910:24118,39911:24119,39912:24132,39913:24131,39914:24128,39915:24142,39916:24151,39917:24148,39918:24159,39919:24162,39920:24164,39921:24135,39922:24181,39923:24182,39924:24186,39925:40636,39926:24191,39927:24224,39928:24257,39929:24258,39930:24264,39931:24272,39932:24271,4e4:24278,40001:24291,40002:24285,40003:24282,40004:24283,40005:24290,40006:24289,40007:24296,40008:24297,40009:24300,40010:24305,40011:24307,40012:24304,40013:24308,40014:24312,40015:24318,40016:24323,40017:24329,40018:24413,40019:24412,40020:24331,40021:24337,40022:24342,40023:24361,40024:24365,40025:24376,40026:24385,40027:24392,40028:24396,40029:24398,40030:24367,40031:24401,40032:24406,40033:24407,40034:24409,40035:24417,40036:24429,40037:24435,40038:24439,40039:24451,40040:24450,40041:24447,40042:24458,40043:24456,40044:24465,40045:24455,40046:24478,40047:24473,40048:24472,40049:24480,40050:24488,40051:24493,40052:24508,40053:24534,40054:24571,40055:24548,40056:24568,40057:24561,40058:24541,40059:24755,40060:24575,40061:24609,40062:24672,40064:24601,40065:24592,40066:24617,40067:24590,40068:24625,40069:24603,40070:24597,40071:24619,40072:24614,40073:24591,40074:24634,40075:24666,40076:24641,40077:24682,40078:24695,40079:24671,40080:24650,40081:24646,40082:24653,40083:24675,40084:24643,40085:24676,40086:24642,40087:24684,40088:24683,40089:24665,40090:24705,40091:24717,40092:24807,40093:24707,40094:24730,40095:24708,40096:24731,40097:24726,40098:24727,40099:24722,40100:24743,40101:24715,40102:24801,40103:24760,40104:24800,40105:24787,40106:24756,40107:24560,40108:24765,40109:24774,40110:24757,40111:24792,40112:24909,40113:24853,40114:24838,40115:24822,40116:24823,40117:24832,40118:24820,40119:24826,40120:24835,40121:24865,40122:24827,40123:24817,40124:24845,40125:24846,40126:24903,40127:24894,40128:24872,40129:24871,40130:24906,40131:24895,40132:24892,40133:24876,40134:24884,40135:24893,40136:24898,40137:24900,40138:24947,40139:24951,40140:24920,40141:24921,40142:24922,40143:24939,40144:24948,40145:24943,40146:24933,40147:24945,40148:24927,40149:24925,40150:24915,40151:24949,40152:24985,40153:24982,40154:24967,40155:25004,40156:24980,40157:24986,40158:24970,40159:24977,40160:25003,40161:25006,40162:25036,40163:25034,40164:25033,40165:25079,40166:25032,40167:25027,40168:25030,40169:25018,40170:25035,40171:32633,40172:25037,40173:25062,40174:25059,40175:25078,40176:25082,40177:25076,40178:25087,40179:25085,40180:25084,40181:25086,40182:25088,40183:25096,40184:25097,40185:25101,40186:25100,40187:25108,40188:25115,40256:25118,40257:25121,40258:25130,40259:25134,40260:25136,40261:25138,40262:25139,40263:25153,40264:25166,40265:25182,40266:25187,40267:25179,40268:25184,40269:25192,40270:25212,40271:25218,40272:25225,40273:25214,40274:25234,40275:25235,40276:25238,40277:25300,40278:25219,40279:25236,40280:25303,40281:25297,40282:25275,40283:25295,40284:25343,40285:25286,40286:25812,40287:25288,40288:25308,40289:25292,40290:25290,40291:25282,40292:25287,40293:25243,40294:25289,40295:25356,40296:25326,40297:25329,40298:25383,40299:25346,40300:25352,40301:25327,40302:25333,40303:25424,40304:25406,40305:25421,40306:25628,40307:25423,40308:25494,40309:25486,40310:25472,40311:25515,40312:25462,40313:25507,40314:25487,40315:25481,40316:25503,40317:25525,40318:25451,40320:25449,40321:25534,40322:25577,40323:25536,40324:25542,40325:25571,40326:25545,40327:25554,40328:25590,40329:25540,40330:25622,40331:25652,40332:25606,40333:25619,40334:25638,40335:25654,40336:25885,40337:25623,40338:25640,40339:25615,40340:25703,40341:25711,40342:25718,40343:25678,40344:25898,40345:25749,40346:25747,40347:25765,40348:25769,40349:25736,40350:25788,40351:25818,40352:25810,40353:25797,40354:25799,40355:25787,40356:25816,40357:25794,40358:25841,40359:25831,40360:33289,40361:25824,40362:25825,40363:25260,40364:25827,40365:25839,40366:25900,40367:25846,40368:25844,40369:25842,40370:25850,40371:25856,40372:25853,40373:25880,40374:25884,40375:25861,40376:25892,40377:25891,40378:25899,40379:25908,40380:25909,40381:25911,40382:25910,40383:25912,40384:30027,40385:25928,40386:25942,40387:25941,40388:25933,40389:25944,40390:25950,40391:25949,40392:25970,40393:25976,40394:25986,40395:25987,40396:35722,40397:26011,40398:26015,40399:26027,40400:26039,40401:26051,40402:26054,40403:26049,40404:26052,40405:26060,40406:26066,40407:26075,40408:26073,40409:26080,40410:26081,40411:26097,40412:26482,40413:26122,40414:26115,40415:26107,40416:26483,40417:26165,40418:26166,40419:26164,40420:26140,40421:26191,40422:26180,40423:26185,40424:26177,40425:26206,40426:26205,40427:26212,40428:26215,40429:26216,40430:26207,40431:26210,40432:26224,40433:26243,40434:26248,40435:26254,40436:26249,40437:26244,40438:26264,40439:26269,40440:26305,40441:26297,40442:26313,40443:26302,40444:26300,40512:26308,40513:26296,40514:26326,40515:26330,40516:26336,40517:26175,40518:26342,40519:26345,40520:26352,40521:26357,40522:26359,40523:26383,40524:26390,40525:26398,40526:26406,40527:26407,40528:38712,40529:26414,40530:26431,40531:26422,40532:26433,40533:26424,40534:26423,40535:26438,40536:26462,40537:26464,40538:26457,40539:26467,40540:26468,40541:26505,40542:26480,40543:26537,40544:26492,40545:26474,40546:26508,40547:26507,40548:26534,40549:26529,40550:26501,40551:26551,40552:26607,40553:26548,40554:26604,40555:26547,40556:26601,40557:26552,40558:26596,40559:26590,40560:26589,40561:26594,40562:26606,40563:26553,40564:26574,40565:26566,40566:26599,40567:27292,40568:26654,40569:26694,40570:26665,40571:26688,40572:26701,40573:26674,40574:26702,40576:26803,40577:26667,40578:26713,40579:26723,40580:26743,40581:26751,40582:26783,40583:26767,40584:26797,40585:26772,40586:26781,40587:26779,40588:26755,40589:27310,40590:26809,40591:26740,40592:26805,40593:26784,40594:26810,40595:26895,40596:26765,40597:26750,40598:26881,40599:26826,40600:26888,40601:26840,40602:26914,40603:26918,40604:26849,40605:26892,40606:26829,40607:26836,40608:26855,40609:26837,40610:26934,40611:26898,40612:26884,40613:26839,40614:26851,40615:26917,40616:26873,40617:26848,40618:26863,40619:26920,40620:26922,40621:26906,40622:26915,40623:26913,40624:26822,40625:27001,40626:26999,40627:26972,40628:27e3,40629:26987,40630:26964,40631:27006,40632:26990,40633:26937,40634:26996,40635:26941,40636:26969,40637:26928,40638:26977,40639:26974,40640:26973,40641:27009,40642:26986,40643:27058,40644:27054,40645:27088,40646:27071,40647:27073,40648:27091,40649:27070,40650:27086,40651:23528,40652:27082,40653:27101,40654:27067,40655:27075,40656:27047,40657:27182,40658:27025,40659:27040,40660:27036,40661:27029,40662:27060,40663:27102,40664:27112,40665:27138,40666:27163,40667:27135,40668:27402,40669:27129,40670:27122,40671:27111,40672:27141,40673:27057,40674:27166,40675:27117,40676:27156,40677:27115,40678:27146,40679:27154,40680:27329,40681:27171,40682:27155,40683:27204,40684:27148,40685:27250,40686:27190,40687:27256,40688:27207,40689:27234,40690:27225,40691:27238,40692:27208,40693:27192,40694:27170,40695:27280,40696:27277,40697:27296,40698:27268,40699:27298,40700:27299,40768:27287,40769:34327,40770:27323,40771:27331,40772:27330,40773:27320,40774:27315,40775:27308,40776:27358,40777:27345,40778:27359,40779:27306,40780:27354,40781:27370,40782:27387,40783:27397,40784:34326,40785:27386,40786:27410,40787:27414,40788:39729,40789:27423,40790:27448,40791:27447,40792:30428,40793:27449,40794:39150,40795:27463,40796:27459,40797:27465,40798:27472,40799:27481,40800:27476,40801:27483,40802:27487,40803:27489,40804:27512,40805:27513,40806:27519,40807:27520,40808:27524,40809:27523,40810:27533,40811:27544,40812:27541,40813:27550,40814:27556,40815:27562,40816:27563,40817:27567,40818:27570,40819:27569,40820:27571,40821:27575,40822:27580,40823:27590,40824:27595,40825:27603,40826:27615,40827:27628,40828:27627,40829:27635,40830:27631,40832:40638,40833:27656,40834:27667,40835:27668,40836:27675,40837:27684,40838:27683,40839:27742,40840:27733,40841:27746,40842:27754,40843:27778,40844:27789,40845:27802,40846:27777,40847:27803,40848:27774,40849:27752,40850:27763,40851:27794,40852:27792,40853:27844,40854:27889,40855:27859,40856:27837,40857:27863,40858:27845,40859:27869,40860:27822,40861:27825,40862:27838,40863:27834,40864:27867,40865:27887,40866:27865,40867:27882,40868:27935,40869:34893,40870:27958,40871:27947,40872:27965,40873:27960,40874:27929,40875:27957,40876:27955,40877:27922,40878:27916,40879:28003,40880:28051,40881:28004,40882:27994,40883:28025,40884:27993,40885:28046,40886:28053,40887:28644,40888:28037,40889:28153,40890:28181,40891:28170,40892:28085,40893:28103,40894:28134,40895:28088,40896:28102,40897:28140,40898:28126,40899:28108,40900:28136,40901:28114,40902:28101,40903:28154,40904:28121,40905:28132,40906:28117,40907:28138,40908:28142,40909:28205,40910:28270,40911:28206,40912:28185,40913:28274,40914:28255,40915:28222,40916:28195,40917:28267,40918:28203,40919:28278,40920:28237,40921:28191,40922:28227,40923:28218,40924:28238,40925:28196,40926:28415,40927:28189,40928:28216,40929:28290,40930:28330,40931:28312,40932:28361,40933:28343,40934:28371,40935:28349,40936:28335,40937:28356,40938:28338,40939:28372,40940:28373,40941:28303,40942:28325,40943:28354,40944:28319,40945:28481,40946:28433,40947:28748,40948:28396,40949:28408,40950:28414,40951:28479,40952:28402,40953:28465,40954:28399,40955:28466,40956:28364,161:65377,162:65378,163:65379,164:65380,165:65381,166:65382,167:65383,168:65384,169:65385,170:65386,171:65387,172:65388,173:65389,174:65390,175:65391,176:65392,177:65393,178:65394,179:65395,180:65396,181:65397,182:65398,183:65399,184:65400,185:65401,186:65402,187:65403,188:65404,189:65405,190:65406,191:65407,192:65408,193:65409,194:65410,195:65411,196:65412,197:65413,198:65414,199:65415,200:65416,201:65417,202:65418,203:65419,204:65420,205:65421,206:65422,207:65423,208:65424,209:65425,210:65426,211:65427,212:65428,213:65429,214:65430,215:65431,216:65432,217:65433,218:65434,219:65435,220:65436,221:65437,222:65438,223:65439,57408:28478,57409:28435,57410:28407,57411:28550,57412:28538,57413:28536,57414:28545,57415:28544,57416:28527,57417:28507,57418:28659,57419:28525,57420:28546,57421:28540,57422:28504,57423:28558,57424:28561,57425:28610,57426:28518,57427:28595,57428:28579,57429:28577,57430:28580,57431:28601,57432:28614,57433:28586,57434:28639,57435:28629,57436:28652,57437:28628,57438:28632,57439:28657,57440:28654,57441:28635,57442:28681,57443:28683,57444:28666,57445:28689,57446:28673,57447:28687,57448:28670,57449:28699,57450:28698,57451:28532,57452:28701,57453:28696,57454:28703,57455:28720,57456:28734,57457:28722,57458:28753,57459:28771,57460:28825,57461:28818,57462:28847,57463:28913,57464:28844,57465:28856,57466:28851,57467:28846,57468:28895,57469:28875,57470:28893,57472:28889,57473:28937,57474:28925,57475:28956,57476:28953,57477:29029,57478:29013,57479:29064,57480:29030,57481:29026,57482:29004,57483:29014,57484:29036,57485:29071,57486:29179,57487:29060,57488:29077,57489:29096,57490:29100,57491:29143,57492:29113,57493:29118,57494:29138,57495:29129,57496:29140,57497:29134,57498:29152,57499:29164,57500:29159,57501:29173,57502:29180,57503:29177,57504:29183,57505:29197,57506:29200,57507:29211,57508:29224,57509:29229,57510:29228,57511:29232,57512:29234,57513:29243,57514:29244,57515:29247,57516:29248,57517:29254,57518:29259,57519:29272,57520:29300,57521:29310,57522:29314,57523:29313,57524:29319,57525:29330,57526:29334,57527:29346,57528:29351,57529:29369,57530:29362,57531:29379,57532:29382,57533:29380,57534:29390,57535:29394,57536:29410,57537:29408,57538:29409,57539:29433,57540:29431,57541:20495,57542:29463,57543:29450,57544:29468,57545:29462,57546:29469,57547:29492,57548:29487,57549:29481,57550:29477,57551:29502,57552:29518,57553:29519,57554:40664,57555:29527,57556:29546,57557:29544,57558:29552,57559:29560,57560:29557,57561:29563,57562:29562,57563:29640,57564:29619,57565:29646,57566:29627,57567:29632,57568:29669,57569:29678,57570:29662,57571:29858,57572:29701,57573:29807,57574:29733,57575:29688,57576:29746,57577:29754,57578:29781,57579:29759,57580:29791,57581:29785,57582:29761,57583:29788,57584:29801,57585:29808,57586:29795,57587:29802,57588:29814,57589:29822,57590:29835,57591:29854,57592:29863,57593:29898,57594:29903,57595:29908,57596:29681,57664:29920,57665:29923,57666:29927,57667:29929,57668:29934,57669:29938,57670:29936,57671:29937,57672:29944,57673:29943,57674:29956,57675:29955,57676:29957,57677:29964,57678:29966,57679:29965,57680:29973,57681:29971,57682:29982,57683:29990,57684:29996,57685:30012,57686:30020,57687:30029,57688:30026,57689:30025,57690:30043,57691:30022,57692:30042,57693:30057,57694:30052,57695:30055,57696:30059,57697:30061,57698:30072,57699:30070,57700:30086,57701:30087,57702:30068,57703:30090,57704:30089,57705:30082,57706:30100,57707:30106,57708:30109,57709:30117,57710:30115,57711:30146,57712:30131,57713:30147,57714:30133,57715:30141,57716:30136,57717:30140,57718:30129,57719:30157,57720:30154,57721:30162,57722:30169,57723:30179,57724:30174,57725:30206,57726:30207,57728:30204,57729:30209,57730:30192,57731:30202,57732:30194,57733:30195,57734:30219,57735:30221,57736:30217,57737:30239,57738:30247,57739:30240,57740:30241,57741:30242,57742:30244,57743:30260,57744:30256,57745:30267,57746:30279,57747:30280,57748:30278,57749:30300,57750:30296,57751:30305,57752:30306,57753:30312,57754:30313,57755:30314,57756:30311,57757:30316,57758:30320,57759:30322,57760:30326,57761:30328,57762:30332,57763:30336,57764:30339,57765:30344,57766:30347,57767:30350,57768:30358,57769:30355,57770:30361,57771:30362,57772:30384,57773:30388,57774:30392,57775:30393,57776:30394,57777:30402,57778:30413,57779:30422,57780:30418,57781:30430,57782:30433,57783:30437,57784:30439,57785:30442,57786:34351,57787:30459,57788:30472,57789:30471,57790:30468,57791:30505,57792:30500,57793:30494,57794:30501,57795:30502,57796:30491,57797:30519,57798:30520,57799:30535,57800:30554,57801:30568,57802:30571,57803:30555,57804:30565,57805:30591,57806:30590,57807:30585,57808:30606,57809:30603,57810:30609,57811:30624,57812:30622,57813:30640,57814:30646,57815:30649,57816:30655,57817:30652,57818:30653,57819:30651,57820:30663,57821:30669,57822:30679,57823:30682,57824:30684,57825:30691,57826:30702,57827:30716,57828:30732,57829:30738,57830:31014,57831:30752,57832:31018,57833:30789,57834:30862,57835:30836,57836:30854,57837:30844,57838:30874,57839:30860,57840:30883,57841:30901,57842:30890,57843:30895,57844:30929,57845:30918,57846:30923,57847:30932,57848:30910,57849:30908,57850:30917,57851:30922,57852:30956,57920:30951,57921:30938,57922:30973,57923:30964,57924:30983,57925:30994,57926:30993,57927:31001,57928:31020,57929:31019,57930:31040,57931:31072,57932:31063,57933:31071,57934:31066,57935:31061,57936:31059,57937:31098,57938:31103,57939:31114,57940:31133,57941:31143,57942:40779,57943:31146,57944:31150,57945:31155,57946:31161,57947:31162,57948:31177,57949:31189,57950:31207,57951:31212,57952:31201,57953:31203,57954:31240,57955:31245,57956:31256,57957:31257,57958:31264,57959:31263,57960:31104,57961:31281,57962:31291,57963:31294,57964:31287,57965:31299,57966:31319,57967:31305,57968:31329,57969:31330,57970:31337,57971:40861,57972:31344,57973:31353,57974:31357,57975:31368,57976:31383,57977:31381,57978:31384,57979:31382,57980:31401,57981:31432,57982:31408,57984:31414,57985:31429,57986:31428,57987:31423,57988:36995,57989:31431,57990:31434,57991:31437,57992:31439,57993:31445,57994:31443,57995:31449,57996:31450,57997:31453,57998:31457,57999:31458,58e3:31462,58001:31469,58002:31472,58003:31490,58004:31503,58005:31498,58006:31494,58007:31539,58008:31512,58009:31513,58010:31518,58011:31541,58012:31528,58013:31542,58014:31568,58015:31610,58016:31492,58017:31565,58018:31499,58019:31564,58020:31557,58021:31605,58022:31589,58023:31604,58024:31591,58025:31600,58026:31601,58027:31596,58028:31598,58029:31645,58030:31640,58031:31647,58032:31629,58033:31644,58034:31642,58035:31627,58036:31634,58037:31631,58038:31581,58039:31641,58040:31691,58041:31681,58042:31692,58043:31695,58044:31668,58045:31686,58046:31709,58047:31721,58048:31761,58049:31764,58050:31718,58051:31717,58052:31840,58053:31744,58054:31751,58055:31763,58056:31731,58057:31735,58058:31767,58059:31757,58060:31734,58061:31779,58062:31783,58063:31786,58064:31775,58065:31799,58066:31787,58067:31805,58068:31820,58069:31811,58070:31828,58071:31823,58072:31808,58073:31824,58074:31832,58075:31839,58076:31844,58077:31830,58078:31845,58079:31852,58080:31861,58081:31875,58082:31888,58083:31908,58084:31917,58085:31906,58086:31915,58087:31905,58088:31912,58089:31923,58090:31922,58091:31921,58092:31918,58093:31929,58094:31933,58095:31936,58096:31941,58097:31938,58098:31960,58099:31954,58100:31964,58101:31970,58102:39739,58103:31983,58104:31986,58105:31988,58106:31990,58107:31994,58108:32006,58176:32002,58177:32028,58178:32021,58179:32010,58180:32069,58181:32075,58182:32046,58183:32050,58184:32063,58185:32053,58186:32070,58187:32115,58188:32086,58189:32078,58190:32114,58191:32104,58192:32110,58193:32079,58194:32099,58195:32147,58196:32137,58197:32091,58198:32143,58199:32125,58200:32155,58201:32186,58202:32174,58203:32163,58204:32181,58205:32199,58206:32189,58207:32171,58208:32317,58209:32162,58210:32175,58211:32220,58212:32184,58213:32159,58214:32176,58215:32216,58216:32221,58217:32228,58218:32222,58219:32251,58220:32242,58221:32225,58222:32261,58223:32266,58224:32291,58225:32289,58226:32274,58227:32305,58228:32287,58229:32265,58230:32267,58231:32290,58232:32326,58233:32358,58234:32315,58235:32309,58236:32313,58237:32323,58238:32311,58240:32306,58241:32314,58242:32359,58243:32349,58244:32342,58245:32350,58246:32345,58247:32346,58248:32377,58249:32362,58250:32361,58251:32380,58252:32379,58253:32387,58254:32213,58255:32381,58256:36782,58257:32383,58258:32392,58259:32393,58260:32396,58261:32402,58262:32400,58263:32403,58264:32404,58265:32406,58266:32398,58267:32411,58268:32412,58269:32568,58270:32570,58271:32581,58272:32588,58273:32589,58274:32590,58275:32592,58276:32593,58277:32597,58278:32596,58279:32600,58280:32607,58281:32608,58282:32616,58283:32617,58284:32615,58285:32632,58286:32642,58287:32646,58288:32643,58289:32648,58290:32647,58291:32652,58292:32660,58293:32670,58294:32669,58295:32666,58296:32675,58297:32687,58298:32690,58299:32697,58300:32686,58301:32694,58302:32696,58303:35697,58304:32709,58305:32710,58306:32714,58307:32725,58308:32724,58309:32737,58310:32742,58311:32745,58312:32755,58313:32761,58314:39132,58315:32774,58316:32772,58317:32779,58318:32786,58319:32792,58320:32793,58321:32796,58322:32801,58323:32808,58324:32831,58325:32827,58326:32842,58327:32838,58328:32850,58329:32856,58330:32858,58331:32863,58332:32866,58333:32872,58334:32883,58335:32882,58336:32880,58337:32886,58338:32889,58339:32893,58340:32895,58341:32900,58342:32902,58343:32901,58344:32923,58345:32915,58346:32922,58347:32941,58348:20880,58349:32940,58350:32987,58351:32997,58352:32985,58353:32989,58354:32964,58355:32986,58356:32982,58357:33033,58358:33007,58359:33009,58360:33051,58361:33065,58362:33059,58363:33071,58364:33099,58432:38539,58433:33094,58434:33086,58435:33107,58436:33105,58437:33020,58438:33137,58439:33134,58440:33125,58441:33126,58442:33140,58443:33155,58444:33160,58445:33162,58446:33152,58447:33154,58448:33184,58449:33173,58450:33188,58451:33187,58452:33119,58453:33171,58454:33193,58455:33200,58456:33205,58457:33214,58458:33208,58459:33213,58460:33216,58461:33218,58462:33210,58463:33225,58464:33229,58465:33233,58466:33241,58467:33240,58468:33224,58469:33242,58470:33247,58471:33248,58472:33255,58473:33274,58474:33275,58475:33278,58476:33281,58477:33282,58478:33285,58479:33287,58480:33290,58481:33293,58482:33296,58483:33302,58484:33321,58485:33323,58486:33336,58487:33331,58488:33344,58489:33369,58490:33368,58491:33373,58492:33370,58493:33375,58494:33380,58496:33378,58497:33384,58498:33386,58499:33387,58500:33326,58501:33393,58502:33399,58503:33400,58504:33406,58505:33421,58506:33426,58507:33451,58508:33439,58509:33467,58510:33452,58511:33505,58512:33507,58513:33503,58514:33490,58515:33524,58516:33523,58517:33530,58518:33683,58519:33539,58520:33531,58521:33529,58522:33502,58523:33542,58524:33500,58525:33545,58526:33497,58527:33589,58528:33588,58529:33558,58530:33586,58531:33585,58532:33600,58533:33593,58534:33616,58535:33605,58536:33583,58537:33579,58538:33559,58539:33560,58540:33669,58541:33690,58542:33706,58543:33695,58544:33698,58545:33686,58546:33571,58547:33678,58548:33671,58549:33674,58550:33660,58551:33717,58552:33651,58553:33653,58554:33696,58555:33673,58556:33704,58557:33780,58558:33811,58559:33771,58560:33742,58561:33789,58562:33795,58563:33752,58564:33803,58565:33729,58566:33783,58567:33799,58568:33760,58569:33778,58570:33805,58571:33826,58572:33824,58573:33725,58574:33848,58575:34054,58576:33787,58577:33901,58578:33834,58579:33852,58580:34138,58581:33924,58582:33911,58583:33899,58584:33965,58585:33902,58586:33922,58587:33897,58588:33862,58589:33836,58590:33903,58591:33913,58592:33845,58593:33994,58594:33890,58595:33977,58596:33983,58597:33951,58598:34009,58599:33997,58600:33979,58601:34010,58602:34e3,58603:33985,58604:33990,58605:34006,58606:33953,58607:34081,58608:34047,58609:34036,58610:34071,58611:34072,58612:34092,58613:34079,58614:34069,58615:34068,58616:34044,58617:34112,58618:34147,58619:34136,58620:34120,58688:34113,58689:34306,58690:34123,58691:34133,58692:34176,58693:34212,58694:34184,58695:34193,58696:34186,58697:34216,58698:34157,58699:34196,58700:34203,58701:34282,58702:34183,58703:34204,58704:34167,58705:34174,58706:34192,58707:34249,58708:34234,58709:34255,58710:34233,58711:34256,58712:34261,58713:34269,58714:34277,58715:34268,58716:34297,58717:34314,58718:34323,58719:34315,58720:34302,58721:34298,58722:34310,58723:34338,58724:34330,58725:34352,58726:34367,58727:34381,58728:20053,58729:34388,58730:34399,58731:34407,58732:34417,58733:34451,58734:34467,58735:34473,58736:34474,58737:34443,58738:34444,58739:34486,58740:34479,58741:34500,58742:34502,58743:34480,58744:34505,58745:34851,58746:34475,58747:34516,58748:34526,58749:34537,58750:34540,58752:34527,58753:34523,58754:34543,58755:34578,58756:34566,58757:34568,58758:34560,58759:34563,58760:34555,58761:34577,58762:34569,58763:34573,58764:34553,58765:34570,58766:34612,58767:34623,58768:34615,58769:34619,58770:34597,58771:34601,58772:34586,58773:34656,58774:34655,58775:34680,58776:34636,58777:34638,58778:34676,58779:34647,58780:34664,58781:34670,58782:34649,58783:34643,58784:34659,58785:34666,58786:34821,58787:34722,58788:34719,58789:34690,58790:34735,58791:34763,58792:34749,58793:34752,58794:34768,58795:38614,58796:34731,58797:34756,58798:34739,58799:34759,58800:34758,58801:34747,58802:34799,58803:34802,58804:34784,58805:34831,58806:34829,58807:34814,58808:34806,58809:34807,58810:34830,58811:34770,58812:34833,58813:34838,58814:34837,58815:34850,58816:34849,58817:34865,58818:34870,58819:34873,58820:34855,58821:34875,58822:34884,58823:34882,58824:34898,58825:34905,58826:34910,58827:34914,58828:34923,58829:34945,58830:34942,58831:34974,58832:34933,58833:34941,58834:34997,58835:34930,58836:34946,58837:34967,58838:34962,58839:34990,58840:34969,58841:34978,58842:34957,58843:34980,58844:34992,58845:35007,58846:34993,58847:35011,58848:35012,58849:35028,58850:35032,58851:35033,58852:35037,58853:35065,58854:35074,58855:35068,58856:35060,58857:35048,58858:35058,58859:35076,58860:35084,58861:35082,58862:35091,58863:35139,58864:35102,58865:35109,58866:35114,58867:35115,58868:35137,58869:35140,58870:35131,58871:35126,58872:35128,58873:35148,58874:35101,58875:35168,58876:35166,58944:35174,58945:35172,58946:35181,58947:35178,58948:35183,58949:35188,58950:35191,58951:35198,58952:35203,58953:35208,58954:35210,58955:35219,58956:35224,58957:35233,58958:35241,58959:35238,58960:35244,58961:35247,58962:35250,58963:35258,58964:35261,58965:35263,58966:35264,58967:35290,58968:35292,58969:35293,58970:35303,58971:35316,58972:35320,58973:35331,58974:35350,58975:35344,58976:35340,58977:35355,58978:35357,58979:35365,58980:35382,58981:35393,58982:35419,58983:35410,58984:35398,58985:35400,58986:35452,58987:35437,58988:35436,58989:35426,58990:35461,58991:35458,58992:35460,58993:35496,58994:35489,58995:35473,58996:35493,58997:35494,58998:35482,58999:35491,59e3:35524,59001:35533,59002:35522,59003:35546,59004:35563,59005:35571,59006:35559,59008:35556,59009:35569,59010:35604,59011:35552,59012:35554,59013:35575,59014:35550,59015:35547,59016:35596,59017:35591,59018:35610,59019:35553,59020:35606,59021:35600,59022:35607,59023:35616,59024:35635,59025:38827,59026:35622,59027:35627,59028:35646,59029:35624,59030:35649,59031:35660,59032:35663,59033:35662,59034:35657,59035:35670,59036:35675,59037:35674,59038:35691,59039:35679,59040:35692,59041:35695,59042:35700,59043:35709,59044:35712,59045:35724,59046:35726,59047:35730,59048:35731,59049:35734,59050:35737,59051:35738,59052:35898,59053:35905,59054:35903,59055:35912,59056:35916,59057:35918,59058:35920,59059:35925,59060:35938,59061:35948,59062:35960,59063:35962,59064:35970,59065:35977,59066:35973,59067:35978,59068:35981,59069:35982,59070:35988,59071:35964,59072:35992,59073:25117,59074:36013,59075:36010,59076:36029,59077:36018,59078:36019,59079:36014,59080:36022,59081:36040,59082:36033,59083:36068,59084:36067,59085:36058,59086:36093,59087:36090,59088:36091,59089:36100,59090:36101,59091:36106,59092:36103,59093:36111,59094:36109,59095:36112,59096:40782,59097:36115,59098:36045,59099:36116,59100:36118,59101:36199,59102:36205,59103:36209,59104:36211,59105:36225,59106:36249,59107:36290,59108:36286,59109:36282,59110:36303,59111:36314,59112:36310,59113:36300,59114:36315,59115:36299,59116:36330,59117:36331,59118:36319,59119:36323,59120:36348,59121:36360,59122:36361,59123:36351,59124:36381,59125:36382,59126:36368,59127:36383,59128:36418,59129:36405,59130:36400,59131:36404,59132:36426,59200:36423,59201:36425,59202:36428,59203:36432,59204:36424,59205:36441,59206:36452,59207:36448,59208:36394,59209:36451,59210:36437,59211:36470,59212:36466,59213:36476,59214:36481,59215:36487,59216:36485,59217:36484,59218:36491,59219:36490,59220:36499,59221:36497,59222:36500,59223:36505,59224:36522,59225:36513,59226:36524,59227:36528,59228:36550,59229:36529,59230:36542,59231:36549,59232:36552,59233:36555,59234:36571,59235:36579,59236:36604,59237:36603,59238:36587,59239:36606,59240:36618,59241:36613,59242:36629,59243:36626,59244:36633,59245:36627,59246:36636,59247:36639,59248:36635,59249:36620,59250:36646,59251:36659,59252:36667,59253:36665,59254:36677,59255:36674,59256:36670,59257:36684,59258:36681,59259:36678,59260:36686,59261:36695,59262:36700,59264:36706,59265:36707,59266:36708,59267:36764,59268:36767,59269:36771,59270:36781,59271:36783,59272:36791,59273:36826,59274:36837,59275:36834,59276:36842,59277:36847,59278:36999,59279:36852,59280:36869,59281:36857,59282:36858,59283:36881,59284:36885,59285:36897,59286:36877,59287:36894,59288:36886,59289:36875,59290:36903,59291:36918,59292:36917,59293:36921,59294:36856,59295:36943,59296:36944,59297:36945,59298:36946,59299:36878,59300:36937,59301:36926,59302:36950,59303:36952,59304:36958,59305:36968,59306:36975,59307:36982,59308:38568,59309:36978,59310:36994,59311:36989,59312:36993,59313:36992,59314:37002,59315:37001,59316:37007,59317:37032,59318:37039,59319:37041,59320:37045,59321:37090,59322:37092,59323:25160,59324:37083,59325:37122,59326:37138,59327:37145,59328:37170,59329:37168,59330:37194,59331:37206,59332:37208,59333:37219,59334:37221,59335:37225,59336:37235,59337:37234,59338:37259,59339:37257,59340:37250,59341:37282,59342:37291,59343:37295,59344:37290,59345:37301,59346:37300,59347:37306,59348:37312,59349:37313,59350:37321,59351:37323,59352:37328,59353:37334,59354:37343,59355:37345,59356:37339,59357:37372,59358:37365,59359:37366,59360:37406,59361:37375,59362:37396,59363:37420,59364:37397,59365:37393,59366:37470,59367:37463,59368:37445,59369:37449,59370:37476,59371:37448,59372:37525,59373:37439,59374:37451,59375:37456,59376:37532,59377:37526,59378:37523,59379:37531,59380:37466,59381:37583,59382:37561,59383:37559,59384:37609,59385:37647,59386:37626,59387:37700,59388:37678,59456:37657,59457:37666,59458:37658,59459:37667,59460:37690,59461:37685,59462:37691,59463:37724,59464:37728,59465:37756,59466:37742,59467:37718,59468:37808,59469:37804,59470:37805,59471:37780,59472:37817,59473:37846,59474:37847,59475:37864,59476:37861,59477:37848,59478:37827,59479:37853,59480:37840,59481:37832,59482:37860,59483:37914,59484:37908,59485:37907,59486:37891,59487:37895,59488:37904,59489:37942,59490:37931,59491:37941,59492:37921,59493:37946,59494:37953,59495:37970,59496:37956,59497:37979,59498:37984,59499:37986,59500:37982,59501:37994,59502:37417,59503:38e3,59504:38005,59505:38007,59506:38013,59507:37978,59508:38012,59509:38014,59510:38017,59511:38015,59512:38274,59513:38279,59514:38282,59515:38292,59516:38294,59517:38296,59518:38297,59520:38304,59521:38312,59522:38311,59523:38317,59524:38332,59525:38331,59526:38329,59527:38334,59528:38346,59529:28662,59530:38339,59531:38349,59532:38348,59533:38357,59534:38356,59535:38358,59536:38364,59537:38369,59538:38373,59539:38370,59540:38433,59541:38440,59542:38446,59543:38447,59544:38466,59545:38476,59546:38479,59547:38475,59548:38519,59549:38492,59550:38494,59551:38493,59552:38495,59553:38502,59554:38514,59555:38508,59556:38541,59557:38552,59558:38549,59559:38551,59560:38570,59561:38567,59562:38577,59563:38578,59564:38576,59565:38580,59566:38582,59567:38584,59568:38585,59569:38606,59570:38603,59571:38601,59572:38605,59573:35149,59574:38620,59575:38669,59576:38613,59577:38649,59578:38660,59579:38662,59580:38664,59581:38675,59582:38670,59583:38673,59584:38671,59585:38678,59586:38681,59587:38692,59588:38698,59589:38704,59590:38713,59591:38717,59592:38718,59593:38724,59594:38726,59595:38728,59596:38722,59597:38729,59598:38748,59599:38752,59600:38756,59601:38758,59602:38760,59603:21202,59604:38763,59605:38769,59606:38777,59607:38789,59608:38780,59609:38785,59610:38778,59611:38790,59612:38795,59613:38799,59614:38800,59615:38812,59616:38824,59617:38822,59618:38819,59619:38835,59620:38836,59621:38851,59622:38854,59623:38856,\\n59624:38859,59625:38876,59626:38893,59627:40783,59628:38898,59629:31455,59630:38902,59631:38901,59632:38927,59633:38924,59634:38968,59635:38948,59636:38945,59637:38967,59638:38973,59639:38982,59640:38991,59641:38987,59642:39019,59643:39023,59644:39024,59712:39025,59713:39028,59714:39027,59715:39082,59716:39087,59717:39089,59718:39094,59719:39108,59720:39107,59721:39110,59722:39145,59723:39147,59724:39171,59725:39177,59726:39186,59727:39188,59728:39192,59729:39201,59730:39197,59731:39198,59732:39204,59733:39200,59734:39212,59735:39214,59736:39229,59737:39230,59738:39234,59739:39241,59740:39237,59741:39248,59742:39243,59743:39249,59744:39250,59745:39244,59746:39253,59747:39319,59748:39320,59749:39333,59750:39341,59751:39342,59752:39356,59753:39391,59754:39387,59755:39389,59756:39384,59757:39377,59758:39405,59759:39406,59760:39409,59761:39410,59762:39419,59763:39416,59764:39425,59765:39439,59766:39429,59767:39394,59768:39449,59769:39467,59770:39479,59771:39493,59772:39490,59773:39488,59774:39491,59776:39486,59777:39509,59778:39501,59779:39515,59780:39511,59781:39519,59782:39522,59783:39525,59784:39524,59785:39529,59786:39531,59787:39530,59788:39597,59789:39600,59790:39612,59791:39616,59792:39631,59793:39633,59794:39635,59795:39636,59796:39646,59797:39647,59798:39650,59799:39651,59800:39654,59801:39663,59802:39659,59803:39662,59804:39668,59805:39665,59806:39671,59807:39675,59808:39686,59809:39704,59810:39706,59811:39711,59812:39714,59813:39715,59814:39717,59815:39719,59816:39720,59817:39721,59818:39722,59819:39726,59820:39727,59821:39730,59822:39748,59823:39747,59824:39759,59825:39757,59826:39758,59827:39761,59828:39768,59829:39796,59830:39827,59831:39811,59832:39825,59833:39830,59834:39831,59835:39839,59836:39840,59837:39848,59838:39860,59839:39872,59840:39882,59841:39865,59842:39878,59843:39887,59844:39889,59845:39890,59846:39907,59847:39906,59848:39908,59849:39892,59850:39905,59851:39994,59852:39922,59853:39921,59854:39920,59855:39957,59856:39956,59857:39945,59858:39955,59859:39948,59860:39942,59861:39944,59862:39954,59863:39946,59864:39940,59865:39982,59866:39963,59867:39973,59868:39972,59869:39969,59870:39984,59871:40007,59872:39986,59873:40006,59874:39998,59875:40026,59876:40032,59877:40039,59878:40054,59879:40056,59880:40167,59881:40172,59882:40176,59883:40201,59884:40200,59885:40171,59886:40195,59887:40198,59888:40234,59889:40230,59890:40367,59891:40227,59892:40223,59893:40260,59894:40213,59895:40210,59896:40257,59897:40255,59898:40254,59899:40262,59900:40264,59968:40285,59969:40286,59970:40292,59971:40273,59972:40272,59973:40281,59974:40306,59975:40329,59976:40327,59977:40363,59978:40303,59979:40314,59980:40346,59981:40356,59982:40361,59983:40370,59984:40388,59985:40385,59986:40379,59987:40376,59988:40378,59989:40390,59990:40399,59991:40386,59992:40409,59993:40403,59994:40440,59995:40422,59996:40429,59997:40431,59998:40445,59999:40474,6e4:40475,60001:40478,60002:40565,60003:40569,60004:40573,60005:40577,60006:40584,60007:40587,60008:40588,60009:40594,60010:40597,60011:40593,60012:40605,60013:40613,60014:40617,60015:40632,60016:40618,60017:40621,60018:38753,60019:40652,60020:40654,60021:40655,60022:40656,60023:40660,60024:40668,60025:40670,60026:40669,60027:40672,60028:40677,60029:40680,60030:40687,60032:40692,60033:40694,60034:40695,60035:40697,60036:40699,60037:40700,60038:40701,60039:40711,60040:40712,60041:30391,60042:40725,60043:40737,60044:40748,60045:40766,60046:40778,60047:40786,60048:40788,60049:40803,60050:40799,60051:40800,60052:40801,60053:40806,60054:40807,60055:40812,60056:40810,60057:40823,60058:40818,60059:40822,60060:40853,60061:40860,60062:40864,60063:22575,60064:27079,60065:36953,60066:29796,60067:20956,60068:29081}},function(o,e,r){\\\"use strict\\\";function t(o,e,r,t){e.degree()=t/2;){var n=c,l=a;if(c=s,a=d,c.isZero())return null;s=n;for(var i=o.zero,B=c.getCoefficient(c.degree()),k=o.inverse(B);s.degree()>=c.degree()&&!s.isZero();){var u=s.degree()-c.degree(),C=o.multiply(s.getCoefficient(s.degree()),k);i=i.addOrSubtract(o.buildMonomial(u,C)),s=s.addOrSubtract(c.multiplyByMonomial(u,C))}if(d=i.multiplyPoly(a).addOrSubtract(l),s.degree()>=c.degree())return null}var m=d.getCoefficient(0);if(0===m)return null;var f=o.inverse(m);return[d.multiply(f),s.multiply(f)];var w}function c(o,e){var r=e.degree();if(1===r)return[e.getCoefficient(1)];for(var t=new Array(r),c=0,s=1;s=a&&d>=n?(l=[e,o,r],t=l[0],c=l[1],s=l[2]):n>=d&&n>=a?(i=[o,e,r],t=i[0],c=i[1],s=i[2]):(B=[o,r,e],t=B[0],c=B[1],s=B[2]),(s.x-c.x)*(t.y-c.y)-(s.y-c.y)*(t.x-c.x)<0&&(k=[s,t],t=k[0],s=k[1]),{bottomLeft:t,topLeft:c,topRight:s};var l,i,B,k}function s(o,e,r,c){var s=(t(d(o,r,c,5))/7+t(d(o,e,c,5))/7+t(d(r,o,c,5))/7+t(d(e,o,c,5))/7)/4;if(s<1)throw new Error(\\\"Invalid module size\\\");var a=Math.round(C(o,e)/s),n=Math.round(C(o,r)/s),l=Math.floor((a+n)/2)+7;switch(l%4){case 0:l++;break;case 2:l--}return{dimension:l,moduleSize:s}}function a(o,e,r,t){var c,s,a,d,n=[{x:Math.floor(o.x),y:Math.floor(o.y)}],l=Math.abs(e.y-o.y)>Math.abs(e.x-o.x);l?(c=Math.floor(o.y),s=Math.floor(o.x),a=Math.floor(e.y),d=Math.floor(e.x)):(c=Math.floor(o.x),s=Math.floor(o.y),a=Math.floor(e.x),d=Math.floor(e.y));for(var i=Math.abs(a-c),B=Math.abs(d-s),k=Math.floor(-i/2),u=c0){if(P===d)break;P+=m,k-=i}}for(var p=[],y=0;y=o.bottom.startX&&w<=o.bottom.endX||f>=o.bottom.startX&&w<=o.bottom.endX||w<=o.bottom.startX&&f>=o.bottom.endX&&l[2]/(o.bottom.endX-o.bottom.startX)k});v.length>0?v[0].bottom=P:r.push({top:P,bottom:P})}if(m){var h=e-l[4],p=h-l[3],P={startX:p,y:c,endX:h},v=d.filter(function(o){return p>=o.bottom.startX&&p<=o.bottom.endX||h>=o.bottom.startX&&p<=o.bottom.endX||p<=o.bottom.startX&&h>=o.bottom.endX&&l[2]/(o.bottom.endX-o.bottom.startX)k});v.length>0?v[0].bottom=P:d.push({top:P,bottom:P})}}}(i);e.push.apply(e,r.filter(function(o){return o.bottom.y!==c&&o.bottom.y-o.top.y>=2})),r=r.filter(function(o){return o.bottom.y===c}),a.push.apply(a,d.filter(function(o){return o.bottom.y!==c})),d=d.filter(function(o){return o.bottom.y===c})}(n);e.push.apply(e,r.filter(function(o){return o.bottom.y-o.top.y>=2})),a.push.apply(a,d);var i=e.filter(function(o){return o.bottom.y-o.top.y>=2}).map(function(e){var r=(e.top.startX+e.top.endX+e.bottom.startX+e.bottom.endX)/4,c=(e.top.y+e.bottom.y+1)/2;if(o.get(Math.round(r),Math.round(c))){\\nvar s=[e.top.endX-e.top.startX,e.bottom.endX-e.bottom.startX,e.bottom.y-e.top.y+1],a=t(s)/s.length;return{score:l({x:Math.round(r),y:Math.round(c)},[1,1,3,1,1],o),x:r,y:c,size:a}}}).filter(function(o){return!!o}).sort(function(o,e){return o.score-e.score}).map(function(o,e,r){if(e>B)return null;var t=r.filter(function(o,r){return e!==r}).map(function(e){return{x:e.x,y:e.y,score:e.score+Math.pow(e.size-o.size,2)/o.size,size:e.size}}).sort(function(o,e){return o.score-e.score});if(t.length<2)return null;var c=o.score+t[0].score+t[1].score;return{points:[o].concat(t.slice(0,2)),score:c}}).filter(function(o){return!!o}).sort(function(o,e){return o.score-e.score});if(0===i.length)return null;var m,f,w=c(i[0].points[0],i[0].points[1],i[0].points[2]),P=w.topRight,v=w.topLeft,h=w.bottomLeft;try{L=s(v,P,h,o),m=L.dimension,f=L.moduleSize}catch(o){return null}var p={x:P.x-v.x+h.x,y:P.y-v.y+h.y},y=(C(v,h)+C(v,P))/2/f,b=1-3/y,g={x:v.x+b*(p.x-v.x),y:v.y+b*(p.y-v.y)},x=a.map(function(e){var r=(e.top.startX+e.top.endX+e.bottom.startX+e.bottom.endX)/4,c=(e.top.y+e.bottom.y+1)/2;if(o.get(Math.floor(r),Math.floor(c))){var s=[e.top.endX-e.top.startX,e.bottom.endX-e.bottom.startX,e.bottom.y-e.top.y+1];t(s);return{x:r,y:c,score:l({x:Math.floor(r),y:Math.floor(c)},[1,1,1],o)+C({x:r,y:c},g)}}}).filter(function(o){return!!o}).sort(function(o,e){return o.score-e.score}),M=y>=15&&x.length?x[0]:g;return{alignmentPattern:{x:M.x,y:M.y},bottomLeft:{x:h.x,y:h.y},dimension:m,topLeft:{x:v.x,y:v.y},topRight:{x:P.x,y:P.y}};var L}Object.defineProperty(e,\\\"__esModule\\\",{value:!0});var B=4,k=.5,u=1.5,C=function(o,e){return Math.sqrt(Math.pow(e.x-o.x,2)+Math.pow(e.y-o.y,2))};e.locate=i}]).default}),self.addEventListener(\\\"message\\\",function(o){var e=jsQR(o.data.data,o.data.width,o.data.height);e?postMessage(e.data):postMessage(null)});\"], {\n type: 'application/javascript'\n});\n\n// Props that are allowed to change dynamicly\nvar propsKeys = ['delay', 'legacyMode', 'facingMode'];\n\nmodule.exports = (_temp = _class = function (_Component) {\n _inherits(Reader, _Component);\n\n function Reader(props) {\n _classCallCheck(this, Reader);\n\n var _this = _possibleConstructorReturn(this, (Reader.__proto__ || Object.getPrototypeOf(Reader)).call(this, props));\n\n _this.els = {};\n\n\n _this.state = {\n mirrorVideo: false\n\n // Bind function to the class\n };_this.initiate = _this.initiate.bind(_this);\n _this.initiateLegacyMode = _this.initiateLegacyMode.bind(_this);\n _this.check = _this.check.bind(_this);\n _this.handleVideo = _this.handleVideo.bind(_this);\n _this.handleLoadStart = _this.handleLoadStart.bind(_this);\n _this.handleInputChange = _this.handleInputChange.bind(_this);\n _this.clearComponent = _this.clearComponent.bind(_this);\n _this.handleReaderLoad = _this.handleReaderLoad.bind(_this);\n _this.openImageDialog = _this.openImageDialog.bind(_this);\n _this.handleWorkerMessage = _this.handleWorkerMessage.bind(_this);\n _this.setRefFactory = _this.setRefFactory.bind(_this);\n return _this;\n }\n\n _createClass(Reader, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n // Initiate web worker execute handler according to mode.\n this.worker = new Worker(URL.createObjectURL(workerBlob));\n this.worker.onmessage = this.handleWorkerMessage;\n\n if (!this.props.legacyMode) {\n this.initiate();\n } else {\n this.initiateLegacyMode();\n }\n }\n }, {\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(nextProps) {\n // React according to change in props\n var changedProps = havePropsChanged(this.props, nextProps, propsKeys);\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = changedProps[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var prop = _step.value;\n\n if (prop == 'facingMode') {\n this.clearComponent();\n this.initiate(nextProps);\n break;\n } else if (prop == 'delay') {\n if (this.props.delay == false && !nextProps.legacyMode) {\n this.timeout = setTimeout(this.check, nextProps.delay);\n }\n if (nextProps.delay == false) {\n clearTimeout(this.timeout);\n }\n } else if (prop == 'legacyMode') {\n if (this.props.legacyMode && !nextProps.legacyMode) {\n this.clearComponent();\n this.initiate(nextProps);\n } else {\n this.clearComponent();\n this.componentDidUpdate = this.initiateLegacyMode;\n }\n break;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: 'shouldComponentUpdate',\n value: function shouldComponentUpdate(nextProps, nextState) {\n if (nextState !== this.state) {\n return true;\n }\n\n // Only render when the `propsKeys` have changed.\n var changedProps = havePropsChanged(this.props, nextProps, propsKeys);\n return changedProps.length > 0;\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n // Stop web-worker and clear the component\n if (this.worker) {\n this.worker.terminate();\n this.worker = undefined;\n }\n this.clearComponent();\n }\n }, {\n key: 'clearComponent',\n value: function clearComponent() {\n // Remove all event listeners and variables\n if (this.timeout) {\n clearTimeout(this.timeout);\n this.timeout = undefined;\n }\n if (this.stopCamera) {\n this.stopCamera();\n }\n if (this.reader) {\n this.reader.removeEventListener('load', this.handleReaderLoad);\n }\n if (this.els.img) {\n this.els.img.removeEventListener('load', this.check);\n }\n }\n }, {\n key: 'initiate',\n value: function initiate() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;\n var onError = props.onError,\n facingMode = props.facingMode;\n\n // Check browser facingMode constraint support\n // Firefox ignores facingMode or deviceId constraints\n\n var isFirefox = /firefox/i.test(navigator.userAgent);\n var supported = {};\n if (navigator.mediaDevices && typeof navigator.mediaDevices.getSupportedConstraints === 'function') {\n supported = navigator.mediaDevices.getSupportedConstraints();\n }\n var constraints = {};\n\n if (supported.facingMode) {\n constraints.facingMode = { ideal: facingMode };\n }\n if (supported.frameRate) {\n constraints.frameRate = { ideal: 25, min: 10 };\n }\n\n var vConstraintsPromise = supported.facingMode || isFirefox ? Promise.resolve(props.constraints || constraints) : getDeviceId(facingMode).then(function (deviceId) {\n return Object.assign({}, { deviceId: deviceId }, props.constraints);\n });\n\n vConstraintsPromise.then(function (video) {\n return navigator.mediaDevices.getUserMedia({ video: video });\n }).then(this.handleVideo).catch(onError);\n }\n }, {\n key: 'handleVideo',\n value: function handleVideo(stream) {\n var preview = this.els.preview;\n var facingMode = this.props.facingMode;\n\n // Preview element hasn't been rendered so wait for it.\n\n if (!preview) {\n return setTimeout(this.handleVideo, 200, stream);\n }\n\n // Handle different browser implementations of MediaStreams as src\n if ((preview || {}).srcObject !== undefined) {\n preview.srcObject = stream;\n } else if (preview.mozSrcObject !== undefined) {\n preview.mozSrcObject = stream;\n } else if (window.URL.createObjectURL) {\n preview.src = window.URL.createObjectURL(stream);\n } else if (window.webkitURL) {\n preview.src = window.webkitURL.createObjectURL(stream);\n } else {\n preview.src = stream;\n }\n\n // IOS play in fullscreen\n preview.playsInline = true;\n\n var streamTrack = stream.getTracks()[0];\n // Assign `stopCamera` so the track can be stopped once component is cleared\n this.stopCamera = streamTrack.stop.bind(streamTrack);\n\n preview.addEventListener('loadstart', this.handleLoadStart);\n\n this.setState({ mirrorVideo: facingMode == 'user', streamLabel: streamTrack.label });\n }\n }, {\n key: 'handleLoadStart',\n value: function handleLoadStart() {\n var _props = this.props,\n delay = _props.delay,\n onLoad = _props.onLoad;\n var _state = this.state,\n mirrorVideo = _state.mirrorVideo,\n streamLabel = _state.streamLabel;\n\n var preview = this.els.preview;\n preview.play();\n\n if (typeof onLoad == 'function') {\n onLoad({ mirrorVideo: mirrorVideo, streamLabel: streamLabel });\n }\n\n if (typeof delay == 'number') {\n this.timeout = setTimeout(this.check, delay);\n }\n\n // Some browsers call loadstart continuously\n preview.removeEventListener('loadstart', this.handleLoadStart);\n }\n }, {\n key: 'check',\n value: function check() {\n var _props2 = this.props,\n legacyMode = _props2.legacyMode,\n resolution = _props2.resolution,\n delay = _props2.delay;\n var _els = this.els,\n preview = _els.preview,\n canvas = _els.canvas,\n img = _els.img;\n\n // Get image/video dimensions\n\n var width = Math.floor(legacyMode ? img.naturalWidth : preview.videoWidth);\n var height = Math.floor(legacyMode ? img.naturalHeight : preview.videoHeight);\n\n // Canvas draw offsets\n var hozOffset = 0;\n var vertOffset = 0;\n\n // Scale image to correct resolution\n if (legacyMode) {\n // Keep image aspect ratio\n var greatestSize = width > height ? width : height;\n var ratio = resolution / greatestSize;\n\n height = ratio * height;\n width = ratio * width;\n\n canvas.width = width;\n canvas.height = height;\n } else {\n // Crop image to fit 1:1 aspect ratio\n var smallestSize = width < height ? width : height;\n var _ratio = resolution / smallestSize;\n\n height = _ratio * height;\n width = _ratio * width;\n\n vertOffset = (height - resolution) / 2 * -1;\n hozOffset = (width - resolution) / 2 * -1;\n\n canvas.width = resolution;\n canvas.height = resolution;\n }\n\n var previewIsPlaying = preview && preview.readyState === preview.HAVE_ENOUGH_DATA;\n\n if (legacyMode || previewIsPlaying) {\n var ctx = canvas.getContext('2d');\n\n ctx.drawImage(legacyMode ? img : preview, hozOffset, vertOffset, width, height);\n\n var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n // Send data to web-worker\n this.worker.postMessage(imageData);\n } else {\n // Preview not ready -> check later\n this.timeout = setTimeout(this.check, delay);\n }\n }\n }, {\n key: 'handleWorkerMessage',\n value: function handleWorkerMessage(e) {\n var _props3 = this.props,\n onScan = _props3.onScan,\n legacyMode = _props3.legacyMode,\n delay = _props3.delay;\n\n var decoded = e.data;\n onScan(decoded || null);\n\n if (!legacyMode && typeof delay == 'number' && this.worker) {\n this.timeout = setTimeout(this.check, delay);\n }\n }\n }, {\n key: 'initiateLegacyMode',\n value: function initiateLegacyMode() {\n this.reader = new FileReader();\n this.reader.addEventListener('load', this.handleReaderLoad);\n this.els.img.addEventListener('load', this.check, false);\n\n // Reset componentDidUpdate\n this.componentDidUpdate = undefined;\n\n if (typeof this.props.onLoad == 'function') {\n this.props.onLoad();\n }\n }\n }, {\n key: 'handleInputChange',\n value: function handleInputChange(e) {\n var selectedImg = e.target.files[0];\n this.reader.readAsDataURL(selectedImg);\n }\n }, {\n key: 'handleReaderLoad',\n value: function handleReaderLoad(e) {\n // Set selected image blob as img source\n this.els.img.src = e.target.result;\n }\n }, {\n key: 'openImageDialog',\n value: function openImageDialog() {\n // Function to be executed by parent in user action context to trigger img file uploader\n this.els.input.click();\n }\n }, {\n key: 'setRefFactory',\n value: function setRefFactory(key) {\n var _this2 = this;\n\n return function (element) {\n _this2.els[key] = element;\n };\n }\n }, {\n key: 'render',\n value: function render() {\n var _props4 = this.props,\n style = _props4.style,\n className = _props4.className,\n onImageLoad = _props4.onImageLoad,\n legacyMode = _props4.legacyMode,\n showViewFinder = _props4.showViewFinder,\n facingMode = _props4.facingMode;\n\n\n var containerStyle = {\n overflow: 'hidden',\n position: 'relative',\n width: '100%',\n paddingTop: '100%'\n };\n var hiddenStyle = { display: 'none' };\n var previewStyle = {\n top: 0,\n left: 0,\n display: 'block',\n position: 'absolute',\n overflow: 'hidden',\n width: '100%',\n height: '100%'\n };\n var videoPreviewStyle = _extends({}, previewStyle, {\n objectFit: 'cover',\n transform: this.state.mirrorVideo ? 'scaleX(-1)' : undefined\n });\n var imgPreviewStyle = _extends({}, previewStyle, {\n objectFit: 'scale-down'\n });\n\n var viewFinderStyle = {\n top: 0,\n left: 0,\n zIndex: 1,\n boxSizing: 'border-box',\n border: '50px solid rgba(0, 0, 0, 0.3)',\n boxShadow: 'inset 0 0 0 5px rgba(255, 0, 0, 0.5)',\n position: 'absolute',\n width: '100%',\n height: '100%'\n };\n\n return React.createElement(\n 'section',\n { className: className, style: style },\n React.createElement(\n 'section',\n { style: containerStyle },\n !legacyMode && showViewFinder ? React.createElement('div', { style: viewFinderStyle }) : null,\n legacyMode ? React.createElement('input', {\n style: hiddenStyle,\n type: 'file',\n accept: 'image/*',\n ref: this.setRefFactory('input'),\n onChange: this.handleInputChange\n }) : null,\n legacyMode ? React.createElement('img', { style: imgPreviewStyle, ref: this.setRefFactory('img'), onLoad: onImageLoad }) : React.createElement('video', { style: videoPreviewStyle, ref: this.setRefFactory('preview') }),\n React.createElement('canvas', { style: hiddenStyle, ref: this.setRefFactory('canvas') })\n )\n );\n }\n }]);\n\n return Reader;\n}(Component), _class.propTypes = {\n onScan: PropTypes.func.isRequired,\n onError: PropTypes.func.isRequired,\n onLoad: PropTypes.func,\n onImageLoad: PropTypes.func,\n delay: PropTypes.oneOfType([PropTypes.number, PropTypes.bool]),\n facingMode: PropTypes.oneOf(['user', 'environment']),\n legacyMode: PropTypes.bool,\n resolution: PropTypes.number,\n showViewFinder: PropTypes.bool,\n style: PropTypes.any,\n className: PropTypes.string,\n constraints: PropTypes.object\n}, _class.defaultProps = {\n delay: 500,\n resolution: 600,\n facingMode: 'environment',\n showViewFinder: true,\n constraints: null\n}, _temp);","'use strict';\n\nvar _require = require('./errors'),\n NoVideoInputDevicesError = _require.NoVideoInputDevicesError;\n\nfunction defaultDeviceIdChooser(filteredDevices, videoDevices, facingMode) {\n if (filteredDevices.length > 0) {\n return filteredDevices[0].deviceId;\n }\n if (videoDevices.length == 1 || facingMode == 'user') {\n return videoDevices[0].deviceId;\n }\n return videoDevices[1].deviceId;\n}\n\nvar getFacingModePattern = function getFacingModePattern(facingMode) {\n return facingMode == 'environment' ? /rear|back|environment/ig : /front|user|face/ig;\n};\n\nfunction getDeviceId(facingMode) {\n var chooseDeviceId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultDeviceIdChooser;\n\n // Get manual deviceId from available devices.\n return new Promise(function (resolve, reject) {\n var enumerateDevices = void 0;\n try {\n enumerateDevices = navigator.mediaDevices.enumerateDevices();\n } catch (err) {\n reject(new NoVideoInputDevicesError());\n }\n enumerateDevices.then(function (devices) {\n // Filter out non-videoinputs\n var videoDevices = devices.filter(function (device) {\n return device.kind == 'videoinput';\n });\n\n if (videoDevices.length < 1) {\n reject(new NoVideoInputDevicesError());\n return;\n }\n\n var pattern = getFacingModePattern(facingMode);\n\n // Filter out video devices without the pattern\n var filteredDevices = videoDevices.filter(function (_ref) {\n var label = _ref.label;\n return pattern.test(label);\n });\n\n resolve(chooseDeviceId(filteredDevices, videoDevices, facingMode));\n });\n });\n}\n\nmodule.exports = { getDeviceId: getDeviceId, getFacingModePattern: getFacingModePattern };","'use strict';\n\nfunction NoVideoInputDevicesError() {\n this.name = 'NoVideoInputDevicesError';\n this.message = 'No video input devices found';\n}\nNoVideoInputDevicesError.prototype = new Error();\n\nmodule.exports = {\n NoVideoInputDevicesError: NoVideoInputDevicesError\n};","\"use strict\";\n\nmodule.exports = function havePropsChanged(prevProps, nextProps, keys) {\n var changedProps = [];\n keys.forEach(function (key) {\n if (prevProps[key] != nextProps[key]) {\n changedProps.push(key);\n }\n });\n return changedProps;\n};","\"use strict\";\n\n/**\n * From https://gist.github.com/nolanlawson/10340255\n */\nmodule.exports = function createBlob(parts, properties) {\n parts = parts || [];\n properties = properties || {};\n try {\n return new Blob(parts, properties);\n } catch (e) {\n if (e.name !== \"TypeError\") {\n throw e;\n }\n var BlobBuilder = window.BlobBuilder || window.MSBlobBuilder || window.MozBlobBuilder || window.WebKitBlobBuilder;\n var builder = new BlobBuilder();\n for (var i = 0; i < parts.length; i += 1) {\n builder.append(parts[i]);\n }\n return builder.getBlob(properties.type);\n }\n};","/*\n * Copyright (c) 2017 The WebRTC project authors. All Rights Reserved.\n *\n * Use of this source code is governed by a BSD-style license\n * that can be found in the LICENSE file in the root of the source\n * tree.\n */\n /* eslint-env node */\n'use strict';\n\nvar SDPUtils = require('sdp');\n\nfunction fixStatsType(stat) {\n return {\n inboundrtp: 'inbound-rtp',\n outboundrtp: 'outbound-rtp',\n candidatepair: 'candidate-pair',\n localcandidate: 'local-candidate',\n remotecandidate: 'remote-candidate'\n }[stat.type] || stat.type;\n}\n\nfunction writeMediaSection(transceiver, caps, type, stream, dtlsRole) {\n var sdp = SDPUtils.writeRtpDescription(transceiver.kind, caps);\n\n // Map ICE parameters (ufrag, pwd) to SDP.\n sdp += SDPUtils.writeIceParameters(\n transceiver.iceGatherer.getLocalParameters());\n\n // Map DTLS parameters to SDP.\n sdp += SDPUtils.writeDtlsParameters(\n transceiver.dtlsTransport.getLocalParameters(),\n type === 'offer' ? 'actpass' : dtlsRole || 'active');\n\n sdp += 'a=mid:' + transceiver.mid + '\\r\\n';\n\n if (transceiver.rtpSender && transceiver.rtpReceiver) {\n sdp += 'a=sendrecv\\r\\n';\n } else if (transceiver.rtpSender) {\n sdp += 'a=sendonly\\r\\n';\n } else if (transceiver.rtpReceiver) {\n sdp += 'a=recvonly\\r\\n';\n } else {\n sdp += 'a=inactive\\r\\n';\n }\n\n if (transceiver.rtpSender) {\n var trackId = transceiver.rtpSender._initialTrackId ||\n transceiver.rtpSender.track.id;\n transceiver.rtpSender._initialTrackId = trackId;\n // spec.\n var msid = 'msid:' + (stream ? stream.id : '-') + ' ' +\n trackId + '\\r\\n';\n sdp += 'a=' + msid;\n // for Chrome. Legacy should no longer be required.\n sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].ssrc +\n ' ' + msid;\n\n // RTX\n if (transceiver.sendEncodingParameters[0].rtx) {\n sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].rtx.ssrc +\n ' ' + msid;\n sdp += 'a=ssrc-group:FID ' +\n transceiver.sendEncodingParameters[0].ssrc + ' ' +\n transceiver.sendEncodingParameters[0].rtx.ssrc +\n '\\r\\n';\n }\n }\n // FIXME: this should be written by writeRtpDescription.\n sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].ssrc +\n ' cname:' + SDPUtils.localCName + '\\r\\n';\n if (transceiver.rtpSender && transceiver.sendEncodingParameters[0].rtx) {\n sdp += 'a=ssrc:' + transceiver.sendEncodingParameters[0].rtx.ssrc +\n ' cname:' + SDPUtils.localCName + '\\r\\n';\n }\n return sdp;\n}\n\n// Edge does not like\n// 1) stun: filtered after 14393 unless ?transport=udp is present\n// 2) turn: that does not have all of turn:host:port?transport=udp\n// 3) turn: with ipv6 addresses\n// 4) turn: occurring muliple times\nfunction filterIceServers(iceServers, edgeVersion) {\n var hasTurn = false;\n iceServers = JSON.parse(JSON.stringify(iceServers));\n return iceServers.filter(function(server) {\n if (server && (server.urls || server.url)) {\n var urls = server.urls || server.url;\n if (server.url && !server.urls) {\n console.warn('RTCIceServer.url is deprecated! Use urls instead.');\n }\n var isString = typeof urls === 'string';\n if (isString) {\n urls = [urls];\n }\n urls = urls.filter(function(url) {\n var validTurn = url.indexOf('turn:') === 0 &&\n url.indexOf('transport=udp') !== -1 &&\n url.indexOf('turn:[') === -1 &&\n !hasTurn;\n\n if (validTurn) {\n hasTurn = true;\n return true;\n }\n return url.indexOf('stun:') === 0 && edgeVersion >= 14393 &&\n url.indexOf('?transport=udp') === -1;\n });\n\n delete server.url;\n server.urls = isString ? urls[0] : urls;\n return !!urls.length;\n }\n });\n}\n\n// Determines the intersection of local and remote capabilities.\nfunction getCommonCapabilities(localCapabilities, remoteCapabilities) {\n var commonCapabilities = {\n codecs: [],\n headerExtensions: [],\n fecMechanisms: []\n };\n\n var findCodecByPayloadType = function(pt, codecs) {\n pt = parseInt(pt, 10);\n for (var i = 0; i < codecs.length; i++) {\n if (codecs[i].payloadType === pt ||\n codecs[i].preferredPayloadType === pt) {\n return codecs[i];\n }\n }\n };\n\n var rtxCapabilityMatches = function(lRtx, rRtx, lCodecs, rCodecs) {\n var lCodec = findCodecByPayloadType(lRtx.parameters.apt, lCodecs);\n var rCodec = findCodecByPayloadType(rRtx.parameters.apt, rCodecs);\n return lCodec && rCodec &&\n lCodec.name.toLowerCase() === rCodec.name.toLowerCase();\n };\n\n localCapabilities.codecs.forEach(function(lCodec) {\n for (var i = 0; i < remoteCapabilities.codecs.length; i++) {\n var rCodec = remoteCapabilities.codecs[i];\n if (lCodec.name.toLowerCase() === rCodec.name.toLowerCase() &&\n lCodec.clockRate === rCodec.clockRate) {\n if (lCodec.name.toLowerCase() === 'rtx' &&\n lCodec.parameters && rCodec.parameters.apt) {\n // for RTX we need to find the local rtx that has a apt\n // which points to the same local codec as the remote one.\n if (!rtxCapabilityMatches(lCodec, rCodec,\n localCapabilities.codecs, remoteCapabilities.codecs)) {\n continue;\n }\n }\n rCodec = JSON.parse(JSON.stringify(rCodec)); // deepcopy\n // number of channels is the highest common number of channels\n rCodec.numChannels = Math.min(lCodec.numChannels,\n rCodec.numChannels);\n // push rCodec so we reply with offerer payload type\n commonCapabilities.codecs.push(rCodec);\n\n // determine common feedback mechanisms\n rCodec.rtcpFeedback = rCodec.rtcpFeedback.filter(function(fb) {\n for (var j = 0; j < lCodec.rtcpFeedback.length; j++) {\n if (lCodec.rtcpFeedback[j].type === fb.type &&\n lCodec.rtcpFeedback[j].parameter === fb.parameter) {\n return true;\n }\n }\n return false;\n });\n // FIXME: also need to determine .parameters\n // see https://github.com/openpeer/ortc/issues/569\n break;\n }\n }\n });\n\n localCapabilities.headerExtensions.forEach(function(lHeaderExtension) {\n for (var i = 0; i < remoteCapabilities.headerExtensions.length;\n i++) {\n var rHeaderExtension = remoteCapabilities.headerExtensions[i];\n if (lHeaderExtension.uri === rHeaderExtension.uri) {\n commonCapabilities.headerExtensions.push(rHeaderExtension);\n break;\n }\n }\n });\n\n // FIXME: fecMechanisms\n return commonCapabilities;\n}\n\n// is action=setLocalDescription with type allowed in signalingState\nfunction isActionAllowedInSignalingState(action, type, signalingState) {\n return {\n offer: {\n setLocalDescription: ['stable', 'have-local-offer'],\n setRemoteDescription: ['stable', 'have-remote-offer']\n },\n answer: {\n setLocalDescription: ['have-remote-offer', 'have-local-pranswer'],\n setRemoteDescription: ['have-local-offer', 'have-remote-pranswer']\n }\n }[type][action].indexOf(signalingState) !== -1;\n}\n\nfunction maybeAddCandidate(iceTransport, candidate) {\n // Edge's internal representation adds some fields therefore\n // not all fieldѕ are taken into account.\n var alreadyAdded = iceTransport.getRemoteCandidates()\n .find(function(remoteCandidate) {\n return candidate.foundation === remoteCandidate.foundation &&\n candidate.ip === remoteCandidate.ip &&\n candidate.port === remoteCandidate.port &&\n candidate.priority === remoteCandidate.priority &&\n candidate.protocol === remoteCandidate.protocol &&\n candidate.type === remoteCandidate.type;\n });\n if (!alreadyAdded) {\n iceTransport.addRemoteCandidate(candidate);\n }\n return !alreadyAdded;\n}\n\n\nfunction makeError(name, description) {\n var e = new Error(description);\n e.name = name;\n // legacy error codes from https://heycam.github.io/webidl/#idl-DOMException-error-names\n e.code = {\n NotSupportedError: 9,\n InvalidStateError: 11,\n InvalidAccessError: 15,\n TypeError: undefined,\n OperationError: undefined\n }[name];\n return e;\n}\n\nmodule.exports = function(window, edgeVersion) {\n // https://w3c.github.io/mediacapture-main/#mediastream\n // Helper function to add the track to the stream and\n // dispatch the event ourselves.\n function addTrackToStreamAndFireEvent(track, stream) {\n stream.addTrack(track);\n stream.dispatchEvent(new window.MediaStreamTrackEvent('addtrack',\n {track: track}));\n }\n\n function removeTrackFromStreamAndFireEvent(track, stream) {\n stream.removeTrack(track);\n stream.dispatchEvent(new window.MediaStreamTrackEvent('removetrack',\n {track: track}));\n }\n\n function fireAddTrack(pc, track, receiver, streams) {\n var trackEvent = new Event('track');\n trackEvent.track = track;\n trackEvent.receiver = receiver;\n trackEvent.transceiver = {receiver: receiver};\n trackEvent.streams = streams;\n window.setTimeout(function() {\n pc._dispatchEvent('track', trackEvent);\n });\n }\n\n var RTCPeerConnection = function(config) {\n var pc = this;\n\n var _eventTarget = document.createDocumentFragment();\n ['addEventListener', 'removeEventListener', 'dispatchEvent']\n .forEach(function(method) {\n pc[method] = _eventTarget[method].bind(_eventTarget);\n });\n\n this.canTrickleIceCandidates = null;\n\n this.needNegotiation = false;\n\n this.localStreams = [];\n this.remoteStreams = [];\n\n this._localDescription = null;\n this._remoteDescription = null;\n\n this.signalingState = 'stable';\n this.iceConnectionState = 'new';\n this.connectionState = 'new';\n this.iceGatheringState = 'new';\n\n config = JSON.parse(JSON.stringify(config || {}));\n\n this.usingBundle = config.bundlePolicy === 'max-bundle';\n if (config.rtcpMuxPolicy === 'negotiate') {\n throw(makeError('NotSupportedError',\n 'rtcpMuxPolicy \\'negotiate\\' is not supported'));\n } else if (!config.rtcpMuxPolicy) {\n config.rtcpMuxPolicy = 'require';\n }\n\n switch (config.iceTransportPolicy) {\n case 'all':\n case 'relay':\n break;\n default:\n config.iceTransportPolicy = 'all';\n break;\n }\n\n switch (config.bundlePolicy) {\n case 'balanced':\n case 'max-compat':\n case 'max-bundle':\n break;\n default:\n config.bundlePolicy = 'balanced';\n break;\n }\n\n config.iceServers = filterIceServers(config.iceServers || [], edgeVersion);\n\n this._iceGatherers = [];\n if (config.iceCandidatePoolSize) {\n for (var i = config.iceCandidatePoolSize; i > 0; i--) {\n this._iceGatherers.push(new window.RTCIceGatherer({\n iceServers: config.iceServers,\n gatherPolicy: config.iceTransportPolicy\n }));\n }\n } else {\n config.iceCandidatePoolSize = 0;\n }\n\n this._config = config;\n\n // per-track iceGathers, iceTransports, dtlsTransports, rtpSenders, ...\n // everything that is needed to describe a SDP m-line.\n this.transceivers = [];\n\n this._sdpSessionId = SDPUtils.generateSessionId();\n this._sdpSessionVersion = 0;\n\n this._dtlsRole = undefined; // role for a=setup to use in answers.\n\n this._isClosed = false;\n };\n\n Object.defineProperty(RTCPeerConnection.prototype, 'localDescription', {\n configurable: true,\n get: function() {\n return this._localDescription;\n }\n });\n Object.defineProperty(RTCPeerConnection.prototype, 'remoteDescription', {\n configurable: true,\n get: function() {\n return this._remoteDescription;\n }\n });\n\n // set up event handlers on prototype\n RTCPeerConnection.prototype.onicecandidate = null;\n RTCPeerConnection.prototype.onaddstream = null;\n RTCPeerConnection.prototype.ontrack = null;\n RTCPeerConnection.prototype.onremovestream = null;\n RTCPeerConnection.prototype.onsignalingstatechange = null;\n RTCPeerConnection.prototype.oniceconnectionstatechange = null;\n RTCPeerConnection.prototype.onconnectionstatechange = null;\n RTCPeerConnection.prototype.onicegatheringstatechange = null;\n RTCPeerConnection.prototype.onnegotiationneeded = null;\n RTCPeerConnection.prototype.ondatachannel = null;\n\n RTCPeerConnection.prototype._dispatchEvent = function(name, event) {\n if (this._isClosed) {\n return;\n }\n this.dispatchEvent(event);\n if (typeof this['on' + name] === 'function') {\n this['on' + name](event);\n }\n };\n\n RTCPeerConnection.prototype._emitGatheringStateChange = function() {\n var event = new Event('icegatheringstatechange');\n this._dispatchEvent('icegatheringstatechange', event);\n };\n\n RTCPeerConnection.prototype.getConfiguration = function() {\n return this._config;\n };\n\n RTCPeerConnection.prototype.getLocalStreams = function() {\n return this.localStreams;\n };\n\n RTCPeerConnection.prototype.getRemoteStreams = function() {\n return this.remoteStreams;\n };\n\n // internal helper to create a transceiver object.\n // (which is not yet the same as the WebRTC 1.0 transceiver)\n RTCPeerConnection.prototype._createTransceiver = function(kind, doNotAdd) {\n var hasBundleTransport = this.transceivers.length > 0;\n var transceiver = {\n track: null,\n iceGatherer: null,\n iceTransport: null,\n dtlsTransport: null,\n localCapabilities: null,\n remoteCapabilities: null,\n rtpSender: null,\n rtpReceiver: null,\n kind: kind,\n mid: null,\n sendEncodingParameters: null,\n recvEncodingParameters: null,\n stream: null,\n associatedRemoteMediaStreams: [],\n wantReceive: true\n };\n if (this.usingBundle && hasBundleTransport) {\n transceiver.iceTransport = this.transceivers[0].iceTransport;\n transceiver.dtlsTransport = this.transceivers[0].dtlsTransport;\n } else {\n var transports = this._createIceAndDtlsTransports();\n transceiver.iceTransport = transports.iceTransport;\n transceiver.dtlsTransport = transports.dtlsTransport;\n }\n if (!doNotAdd) {\n this.transceivers.push(transceiver);\n }\n return transceiver;\n };\n\n RTCPeerConnection.prototype.addTrack = function(track, stream) {\n if (this._isClosed) {\n throw makeError('InvalidStateError',\n 'Attempted to call addTrack on a closed peerconnection.');\n }\n\n var alreadyExists = this.transceivers.find(function(s) {\n return s.track === track;\n });\n\n if (alreadyExists) {\n throw makeError('InvalidAccessError', 'Track already exists.');\n }\n\n var transceiver;\n for (var i = 0; i < this.transceivers.length; i++) {\n if (!this.transceivers[i].track &&\n this.transceivers[i].kind === track.kind) {\n transceiver = this.transceivers[i];\n }\n }\n if (!transceiver) {\n transceiver = this._createTransceiver(track.kind);\n }\n\n this._maybeFireNegotiationNeeded();\n\n if (this.localStreams.indexOf(stream) === -1) {\n this.localStreams.push(stream);\n }\n\n transceiver.track = track;\n transceiver.stream = stream;\n transceiver.rtpSender = new window.RTCRtpSender(track,\n transceiver.dtlsTransport);\n return transceiver.rtpSender;\n };\n\n RTCPeerConnection.prototype.addStream = function(stream) {\n var pc = this;\n if (edgeVersion >= 15025) {\n stream.getTracks().forEach(function(track) {\n pc.addTrack(track, stream);\n });\n } else {\n // Clone is necessary for local demos mostly, attaching directly\n // to two different senders does not work (build 10547).\n // Fixed in 15025 (or earlier)\n var clonedStream = stream.clone();\n stream.getTracks().forEach(function(track, idx) {\n var clonedTrack = clonedStream.getTracks()[idx];\n track.addEventListener('enabled', function(event) {\n clonedTrack.enabled = event.enabled;\n });\n });\n clonedStream.getTracks().forEach(function(track) {\n pc.addTrack(track, clonedStream);\n });\n }\n };\n\n RTCPeerConnection.prototype.removeTrack = function(sender) {\n if (this._isClosed) {\n throw makeError('InvalidStateError',\n 'Attempted to call removeTrack on a closed peerconnection.');\n }\n\n if (!(sender instanceof window.RTCRtpSender)) {\n throw new TypeError('Argument 1 of RTCPeerConnection.removeTrack ' +\n 'does not implement interface RTCRtpSender.');\n }\n\n var transceiver = this.transceivers.find(function(t) {\n return t.rtpSender === sender;\n });\n\n if (!transceiver) {\n throw makeError('InvalidAccessError',\n 'Sender was not created by this connection.');\n }\n var stream = transceiver.stream;\n\n transceiver.rtpSender.stop();\n transceiver.rtpSender = null;\n transceiver.track = null;\n transceiver.stream = null;\n\n // remove the stream from the set of local streams\n var localStreams = this.transceivers.map(function(t) {\n return t.stream;\n });\n if (localStreams.indexOf(stream) === -1 &&\n this.localStreams.indexOf(stream) > -1) {\n this.localStreams.splice(this.localStreams.indexOf(stream), 1);\n }\n\n this._maybeFireNegotiationNeeded();\n };\n\n RTCPeerConnection.prototype.removeStream = function(stream) {\n var pc = this;\n stream.getTracks().forEach(function(track) {\n var sender = pc.getSenders().find(function(s) {\n return s.track === track;\n });\n if (sender) {\n pc.removeTrack(sender);\n }\n });\n };\n\n RTCPeerConnection.prototype.getSenders = function() {\n return this.transceivers.filter(function(transceiver) {\n return !!transceiver.rtpSender;\n })\n .map(function(transceiver) {\n return transceiver.rtpSender;\n });\n };\n\n RTCPeerConnection.prototype.getReceivers = function() {\n return this.transceivers.filter(function(transceiver) {\n return !!transceiver.rtpReceiver;\n })\n .map(function(transceiver) {\n return transceiver.rtpReceiver;\n });\n };\n\n\n RTCPeerConnection.prototype._createIceGatherer = function(sdpMLineIndex,\n usingBundle) {\n var pc = this;\n if (usingBundle && sdpMLineIndex > 0) {\n return this.transceivers[0].iceGatherer;\n } else if (this._iceGatherers.length) {\n return this._iceGatherers.shift();\n }\n var iceGatherer = new window.RTCIceGatherer({\n iceServers: this._config.iceServers,\n gatherPolicy: this._config.iceTransportPolicy\n });\n Object.defineProperty(iceGatherer, 'state',\n {value: 'new', writable: true}\n );\n\n this.transceivers[sdpMLineIndex].bufferedCandidateEvents = [];\n this.transceivers[sdpMLineIndex].bufferCandidates = function(event) {\n var end = !event.candidate || Object.keys(event.candidate).length === 0;\n // polyfill since RTCIceGatherer.state is not implemented in\n // Edge 10547 yet.\n iceGatherer.state = end ? 'completed' : 'gathering';\n if (pc.transceivers[sdpMLineIndex].bufferedCandidateEvents !== null) {\n pc.transceivers[sdpMLineIndex].bufferedCandidateEvents.push(event);\n }\n };\n iceGatherer.addEventListener('localcandidate',\n this.transceivers[sdpMLineIndex].bufferCandidates);\n return iceGatherer;\n };\n\n // start gathering from an RTCIceGatherer.\n RTCPeerConnection.prototype._gather = function(mid, sdpMLineIndex) {\n var pc = this;\n var iceGatherer = this.transceivers[sdpMLineIndex].iceGatherer;\n if (iceGatherer.onlocalcandidate) {\n return;\n }\n var bufferedCandidateEvents =\n this.transceivers[sdpMLineIndex].bufferedCandidateEvents;\n this.transceivers[sdpMLineIndex].bufferedCandidateEvents = null;\n iceGatherer.removeEventListener('localcandidate',\n this.transceivers[sdpMLineIndex].bufferCandidates);\n iceGatherer.onlocalcandidate = function(evt) {\n if (pc.usingBundle && sdpMLineIndex > 0) {\n // if we know that we use bundle we can drop candidates with\n // ѕdpMLineIndex > 0. If we don't do this then our state gets\n // confused since we dispose the extra ice gatherer.\n return;\n }\n var event = new Event('icecandidate');\n event.candidate = {sdpMid: mid, sdpMLineIndex: sdpMLineIndex};\n\n var cand = evt.candidate;\n // Edge emits an empty object for RTCIceCandidateComplete‥\n var end = !cand || Object.keys(cand).length === 0;\n if (end) {\n // polyfill since RTCIceGatherer.state is not implemented in\n // Edge 10547 yet.\n if (iceGatherer.state === 'new' || iceGatherer.state === 'gathering') {\n iceGatherer.state = 'completed';\n }\n } else {\n if (iceGatherer.state === 'new') {\n iceGatherer.state = 'gathering';\n }\n // RTCIceCandidate doesn't have a component, needs to be added\n cand.component = 1;\n // also the usernameFragment. TODO: update SDP to take both variants.\n cand.ufrag = iceGatherer.getLocalParameters().usernameFragment;\n\n var serializedCandidate = SDPUtils.writeCandidate(cand);\n event.candidate = Object.assign(event.candidate,\n SDPUtils.parseCandidate(serializedCandidate));\n\n event.candidate.candidate = serializedCandidate;\n event.candidate.toJSON = function() {\n return {\n candidate: event.candidate.candidate,\n sdpMid: event.candidate.sdpMid,\n sdpMLineIndex: event.candidate.sdpMLineIndex,\n usernameFragment: event.candidate.usernameFragment\n };\n };\n }\n\n // update local description.\n var sections = SDPUtils.getMediaSections(pc._localDescription.sdp);\n if (!end) {\n sections[event.candidate.sdpMLineIndex] +=\n 'a=' + event.candidate.candidate + '\\r\\n';\n } else {\n sections[event.candidate.sdpMLineIndex] +=\n 'a=end-of-candidates\\r\\n';\n }\n pc._localDescription.sdp =\n SDPUtils.getDescription(pc._localDescription.sdp) +\n sections.join('');\n var complete = pc.transceivers.every(function(transceiver) {\n return transceiver.iceGatherer &&\n transceiver.iceGatherer.state === 'completed';\n });\n\n if (pc.iceGatheringState !== 'gathering') {\n pc.iceGatheringState = 'gathering';\n pc._emitGatheringStateChange();\n }\n\n // Emit candidate. Also emit null candidate when all gatherers are\n // complete.\n if (!end) {\n pc._dispatchEvent('icecandidate', event);\n }\n if (complete) {\n pc._dispatchEvent('icecandidate', new Event('icecandidate'));\n pc.iceGatheringState = 'complete';\n pc._emitGatheringStateChange();\n }\n };\n\n // emit already gathered candidates.\n window.setTimeout(function() {\n bufferedCandidateEvents.forEach(function(e) {\n iceGatherer.onlocalcandidate(e);\n });\n }, 0);\n };\n\n // Create ICE transport and DTLS transport.\n RTCPeerConnection.prototype._createIceAndDtlsTransports = function() {\n var pc = this;\n var iceTransport = new window.RTCIceTransport(null);\n iceTransport.onicestatechange = function() {\n pc._updateIceConnectionState();\n pc._updateConnectionState();\n };\n\n var dtlsTransport = new window.RTCDtlsTransport(iceTransport);\n dtlsTransport.ondtlsstatechange = function() {\n pc._updateConnectionState();\n };\n dtlsTransport.onerror = function() {\n // onerror does not set state to failed by itself.\n Object.defineProperty(dtlsTransport, 'state',\n {value: 'failed', writable: true});\n pc._updateConnectionState();\n };\n\n return {\n iceTransport: iceTransport,\n dtlsTransport: dtlsTransport\n };\n };\n\n // Destroy ICE gatherer, ICE transport and DTLS transport.\n // Without triggering the callbacks.\n RTCPeerConnection.prototype._disposeIceAndDtlsTransports = function(\n sdpMLineIndex) {\n var iceGatherer = this.transceivers[sdpMLineIndex].iceGatherer;\n if (iceGatherer) {\n delete iceGatherer.onlocalcandidate;\n delete this.transceivers[sdpMLineIndex].iceGatherer;\n }\n var iceTransport = this.transceivers[sdpMLineIndex].iceTransport;\n if (iceTransport) {\n delete iceTransport.onicestatechange;\n delete this.transceivers[sdpMLineIndex].iceTransport;\n }\n var dtlsTransport = this.transceivers[sdpMLineIndex].dtlsTransport;\n if (dtlsTransport) {\n delete dtlsTransport.ondtlsstatechange;\n delete dtlsTransport.onerror;\n delete this.transceivers[sdpMLineIndex].dtlsTransport;\n }\n };\n\n // Start the RTP Sender and Receiver for a transceiver.\n RTCPeerConnection.prototype._transceive = function(transceiver,\n send, recv) {\n var params = getCommonCapabilities(transceiver.localCapabilities,\n transceiver.remoteCapabilities);\n if (send && transceiver.rtpSender) {\n params.encodings = transceiver.sendEncodingParameters;\n params.rtcp = {\n cname: SDPUtils.localCName,\n compound: transceiver.rtcpParameters.compound\n };\n if (transceiver.recvEncodingParameters.length) {\n params.rtcp.ssrc = transceiver.recvEncodingParameters[0].ssrc;\n }\n transceiver.rtpSender.send(params);\n }\n if (recv && transceiver.rtpReceiver && params.codecs.length > 0) {\n // remove RTX field in Edge 14942\n if (transceiver.kind === 'video'\n && transceiver.recvEncodingParameters\n && edgeVersion < 15019) {\n transceiver.recvEncodingParameters.forEach(function(p) {\n delete p.rtx;\n });\n }\n if (transceiver.recvEncodingParameters.length) {\n params.encodings = transceiver.recvEncodingParameters;\n } else {\n params.encodings = [{}];\n }\n params.rtcp = {\n compound: transceiver.rtcpParameters.compound\n };\n if (transceiver.rtcpParameters.cname) {\n params.rtcp.cname = transceiver.rtcpParameters.cname;\n }\n if (transceiver.sendEncodingParameters.length) {\n params.rtcp.ssrc = transceiver.sendEncodingParameters[0].ssrc;\n }\n transceiver.rtpReceiver.receive(params);\n }\n };\n\n RTCPeerConnection.prototype.setLocalDescription = function(description) {\n var pc = this;\n\n // Note: pranswer is not supported.\n if (['offer', 'answer'].indexOf(description.type) === -1) {\n return Promise.reject(makeError('TypeError',\n 'Unsupported type \"' + description.type + '\"'));\n }\n\n if (!isActionAllowedInSignalingState('setLocalDescription',\n description.type, pc.signalingState) || pc._isClosed) {\n return Promise.reject(makeError('InvalidStateError',\n 'Can not set local ' + description.type +\n ' in state ' + pc.signalingState));\n }\n\n var sections;\n var sessionpart;\n if (description.type === 'offer') {\n // VERY limited support for SDP munging. Limited to:\n // * changing the order of codecs\n sections = SDPUtils.splitSections(description.sdp);\n sessionpart = sections.shift();\n sections.forEach(function(mediaSection, sdpMLineIndex) {\n var caps = SDPUtils.parseRtpParameters(mediaSection);\n pc.transceivers[sdpMLineIndex].localCapabilities = caps;\n });\n\n pc.transceivers.forEach(function(transceiver, sdpMLineIndex) {\n pc._gather(transceiver.mid, sdpMLineIndex);\n });\n } else if (description.type === 'answer') {\n sections = SDPUtils.splitSections(pc._remoteDescription.sdp);\n sessionpart = sections.shift();\n var isIceLite = SDPUtils.matchPrefix(sessionpart,\n 'a=ice-lite').length > 0;\n sections.forEach(function(mediaSection, sdpMLineIndex) {\n var transceiver = pc.transceivers[sdpMLineIndex];\n var iceGatherer = transceiver.iceGatherer;\n var iceTransport = transceiver.iceTransport;\n var dtlsTransport = transceiver.dtlsTransport;\n var localCapabilities = transceiver.localCapabilities;\n var remoteCapabilities = transceiver.remoteCapabilities;\n\n // treat bundle-only as not-rejected.\n var rejected = SDPUtils.isRejected(mediaSection) &&\n SDPUtils.matchPrefix(mediaSection, 'a=bundle-only').length === 0;\n\n if (!rejected && !transceiver.rejected) {\n var remoteIceParameters = SDPUtils.getIceParameters(\n mediaSection, sessionpart);\n var remoteDtlsParameters = SDPUtils.getDtlsParameters(\n mediaSection, sessionpart);\n if (isIceLite) {\n remoteDtlsParameters.role = 'server';\n }\n\n if (!pc.usingBundle || sdpMLineIndex === 0) {\n pc._gather(transceiver.mid, sdpMLineIndex);\n if (iceTransport.state === 'new') {\n iceTransport.start(iceGatherer, remoteIceParameters,\n isIceLite ? 'controlling' : 'controlled');\n }\n if (dtlsTransport.state === 'new') {\n dtlsTransport.start(remoteDtlsParameters);\n }\n }\n\n // Calculate intersection of capabilities.\n var params = getCommonCapabilities(localCapabilities,\n remoteCapabilities);\n\n // Start the RTCRtpSender. The RTCRtpReceiver for this\n // transceiver has already been started in setRemoteDescription.\n pc._transceive(transceiver,\n params.codecs.length > 0,\n false);\n }\n });\n }\n\n pc._localDescription = {\n type: description.type,\n sdp: description.sdp\n };\n if (description.type === 'offer') {\n pc._updateSignalingState('have-local-offer');\n } else {\n pc._updateSignalingState('stable');\n }\n\n return Promise.resolve();\n };\n\n RTCPeerConnection.prototype.setRemoteDescription = function(description) {\n var pc = this;\n\n // Note: pranswer is not supported.\n if (['offer', 'answer'].indexOf(description.type) === -1) {\n return Promise.reject(makeError('TypeError',\n 'Unsupported type \"' + description.type + '\"'));\n }\n\n if (!isActionAllowedInSignalingState('setRemoteDescription',\n description.type, pc.signalingState) || pc._isClosed) {\n return Promise.reject(makeError('InvalidStateError',\n 'Can not set remote ' + description.type +\n ' in state ' + pc.signalingState));\n }\n\n var streams = {};\n pc.remoteStreams.forEach(function(stream) {\n streams[stream.id] = stream;\n });\n var receiverList = [];\n var sections = SDPUtils.splitSections(description.sdp);\n var sessionpart = sections.shift();\n var isIceLite = SDPUtils.matchPrefix(sessionpart,\n 'a=ice-lite').length > 0;\n var usingBundle = SDPUtils.matchPrefix(sessionpart,\n 'a=group:BUNDLE ').length > 0;\n pc.usingBundle = usingBundle;\n var iceOptions = SDPUtils.matchPrefix(sessionpart,\n 'a=ice-options:')[0];\n if (iceOptions) {\n pc.canTrickleIceCandidates = iceOptions.substr(14).split(' ')\n .indexOf('trickle') >= 0;\n } else {\n pc.canTrickleIceCandidates = false;\n }\n\n sections.forEach(function(mediaSection, sdpMLineIndex) {\n var lines = SDPUtils.splitLines(mediaSection);\n var kind = SDPUtils.getKind(mediaSection);\n // treat bundle-only as not-rejected.\n var rejected = SDPUtils.isRejected(mediaSection) &&\n SDPUtils.matchPrefix(mediaSection, 'a=bundle-only').length === 0;\n var protocol = lines[0].substr(2).split(' ')[2];\n\n var direction = SDPUtils.getDirection(mediaSection, sessionpart);\n var remoteMsid = SDPUtils.parseMsid(mediaSection);\n\n var mid = SDPUtils.getMid(mediaSection) || SDPUtils.generateIdentifier();\n\n // Reject datachannels which are not implemented yet.\n if (rejected || (kind === 'application' && (protocol === 'DTLS/SCTP' ||\n protocol === 'UDP/DTLS/SCTP'))) {\n // TODO: this is dangerous in the case where a non-rejected m-line\n // becomes rejected.\n pc.transceivers[sdpMLineIndex] = {\n mid: mid,\n kind: kind,\n protocol: protocol,\n rejected: true\n };\n return;\n }\n\n if (!rejected && pc.transceivers[sdpMLineIndex] &&\n pc.transceivers[sdpMLineIndex].rejected) {\n // recycle a rejected transceiver.\n pc.transceivers[sdpMLineIndex] = pc._createTransceiver(kind, true);\n }\n\n var transceiver;\n var iceGatherer;\n var iceTransport;\n var dtlsTransport;\n var rtpReceiver;\n var sendEncodingParameters;\n var recvEncodingParameters;\n var localCapabilities;\n\n var track;\n // FIXME: ensure the mediaSection has rtcp-mux set.\n var remoteCapabilities = SDPUtils.parseRtpParameters(mediaSection);\n var remoteIceParameters;\n var remoteDtlsParameters;\n if (!rejected) {\n remoteIceParameters = SDPUtils.getIceParameters(mediaSection,\n sessionpart);\n remoteDtlsParameters = SDPUtils.getDtlsParameters(mediaSection,\n sessionpart);\n remoteDtlsParameters.role = 'client';\n }\n recvEncodingParameters =\n SDPUtils.parseRtpEncodingParameters(mediaSection);\n\n var rtcpParameters = SDPUtils.parseRtcpParameters(mediaSection);\n\n var isComplete = SDPUtils.matchPrefix(mediaSection,\n 'a=end-of-candidates', sessionpart).length > 0;\n var cands = SDPUtils.matchPrefix(mediaSection, 'a=candidate:')\n .map(function(cand) {\n return SDPUtils.parseCandidate(cand);\n })\n .filter(function(cand) {\n return cand.component === 1;\n });\n\n // Check if we can use BUNDLE and dispose transports.\n if ((description.type === 'offer' || description.type === 'answer') &&\n !rejected && usingBundle && sdpMLineIndex > 0 &&\n pc.transceivers[sdpMLineIndex]) {\n pc._disposeIceAndDtlsTransports(sdpMLineIndex);\n pc.transceivers[sdpMLineIndex].iceGatherer =\n pc.transceivers[0].iceGatherer;\n pc.transceivers[sdpMLineIndex].iceTransport =\n pc.transceivers[0].iceTransport;\n pc.transceivers[sdpMLineIndex].dtlsTransport =\n pc.transceivers[0].dtlsTransport;\n if (pc.transceivers[sdpMLineIndex].rtpSender) {\n pc.transceivers[sdpMLineIndex].rtpSender.setTransport(\n pc.transceivers[0].dtlsTransport);\n }\n if (pc.transceivers[sdpMLineIndex].rtpReceiver) {\n pc.transceivers[sdpMLineIndex].rtpReceiver.setTransport(\n pc.transceivers[0].dtlsTransport);\n }\n }\n if (description.type === 'offer' && !rejected) {\n transceiver = pc.transceivers[sdpMLineIndex] ||\n pc._createTransceiver(kind);\n transceiver.mid = mid;\n\n if (!transceiver.iceGatherer) {\n transceiver.iceGatherer = pc._createIceGatherer(sdpMLineIndex,\n usingBundle);\n }\n\n if (cands.length && transceiver.iceTransport.state === 'new') {\n if (isComplete && (!usingBundle || sdpMLineIndex === 0)) {\n transceiver.iceTransport.setRemoteCandidates(cands);\n } else {\n cands.forEach(function(candidate) {\n maybeAddCandidate(transceiver.iceTransport, candidate);\n });\n }\n }\n\n localCapabilities = window.RTCRtpReceiver.getCapabilities(kind);\n\n // filter RTX until additional stuff needed for RTX is implemented\n // in adapter.js\n if (edgeVersion < 15019) {\n localCapabilities.codecs = localCapabilities.codecs.filter(\n function(codec) {\n return codec.name !== 'rtx';\n });\n }\n\n sendEncodingParameters = transceiver.sendEncodingParameters || [{\n ssrc: (2 * sdpMLineIndex + 2) * 1001\n }];\n\n // TODO: rewrite to use http://w3c.github.io/webrtc-pc/#set-associated-remote-streams\n var isNewTrack = false;\n if (direction === 'sendrecv' || direction === 'sendonly') {\n isNewTrack = !transceiver.rtpReceiver;\n rtpReceiver = transceiver.rtpReceiver ||\n new window.RTCRtpReceiver(transceiver.dtlsTransport, kind);\n\n if (isNewTrack) {\n var stream;\n track = rtpReceiver.track;\n // FIXME: does not work with Plan B.\n if (remoteMsid && remoteMsid.stream === '-') {\n // no-op. a stream id of '-' means: no associated stream.\n } else if (remoteMsid) {\n if (!streams[remoteMsid.stream]) {\n streams[remoteMsid.stream] = new window.MediaStream();\n Object.defineProperty(streams[remoteMsid.stream], 'id', {\n get: function() {\n return remoteMsid.stream;\n }\n });\n }\n Object.defineProperty(track, 'id', {\n get: function() {\n return remoteMsid.track;\n }\n });\n stream = streams[remoteMsid.stream];\n } else {\n if (!streams.default) {\n streams.default = new window.MediaStream();\n }\n stream = streams.default;\n }\n if (stream) {\n addTrackToStreamAndFireEvent(track, stream);\n transceiver.associatedRemoteMediaStreams.push(stream);\n }\n receiverList.push([track, rtpReceiver, stream]);\n }\n } else if (transceiver.rtpReceiver && transceiver.rtpReceiver.track) {\n transceiver.associatedRemoteMediaStreams.forEach(function(s) {\n var nativeTrack = s.getTracks().find(function(t) {\n return t.id === transceiver.rtpReceiver.track.id;\n });\n if (nativeTrack) {\n removeTrackFromStreamAndFireEvent(nativeTrack, s);\n }\n });\n transceiver.associatedRemoteMediaStreams = [];\n }\n\n transceiver.localCapabilities = localCapabilities;\n transceiver.remoteCapabilities = remoteCapabilities;\n transceiver.rtpReceiver = rtpReceiver;\n transceiver.rtcpParameters = rtcpParameters;\n transceiver.sendEncodingParameters = sendEncodingParameters;\n transceiver.recvEncodingParameters = recvEncodingParameters;\n\n // Start the RTCRtpReceiver now. The RTPSender is started in\n // setLocalDescription.\n pc._transceive(pc.transceivers[sdpMLineIndex],\n false,\n isNewTrack);\n } else if (description.type === 'answer' && !rejected) {\n transceiver = pc.transceivers[sdpMLineIndex];\n iceGatherer = transceiver.iceGatherer;\n iceTransport = transceiver.iceTransport;\n dtlsTransport = transceiver.dtlsTransport;\n rtpReceiver = transceiver.rtpReceiver;\n sendEncodingParameters = transceiver.sendEncodingParameters;\n localCapabilities = transceiver.localCapabilities;\n\n pc.transceivers[sdpMLineIndex].recvEncodingParameters =\n recvEncodingParameters;\n pc.transceivers[sdpMLineIndex].remoteCapabilities =\n remoteCapabilities;\n pc.transceivers[sdpMLineIndex].rtcpParameters = rtcpParameters;\n\n if (cands.length && iceTransport.state === 'new') {\n if ((isIceLite || isComplete) &&\n (!usingBundle || sdpMLineIndex === 0)) {\n iceTransport.setRemoteCandidates(cands);\n } else {\n cands.forEach(function(candidate) {\n maybeAddCandidate(transceiver.iceTransport, candidate);\n });\n }\n }\n\n if (!usingBundle || sdpMLineIndex === 0) {\n if (iceTransport.state === 'new') {\n iceTransport.start(iceGatherer, remoteIceParameters,\n 'controlling');\n }\n if (dtlsTransport.state === 'new') {\n dtlsTransport.start(remoteDtlsParameters);\n }\n }\n\n // If the offer contained RTX but the answer did not,\n // remove RTX from sendEncodingParameters.\n var commonCapabilities = getCommonCapabilities(\n transceiver.localCapabilities,\n transceiver.remoteCapabilities);\n\n var hasRtx = commonCapabilities.codecs.filter(function(c) {\n return c.name.toLowerCase() === 'rtx';\n }).length;\n if (!hasRtx && transceiver.sendEncodingParameters[0].rtx) {\n delete transceiver.sendEncodingParameters[0].rtx;\n }\n\n pc._transceive(transceiver,\n direction === 'sendrecv' || direction === 'recvonly',\n direction === 'sendrecv' || direction === 'sendonly');\n\n // TODO: rewrite to use http://w3c.github.io/webrtc-pc/#set-associated-remote-streams\n if (rtpReceiver &&\n (direction === 'sendrecv' || direction === 'sendonly')) {\n track = rtpReceiver.track;\n if (remoteMsid) {\n if (!streams[remoteMsid.stream]) {\n streams[remoteMsid.stream] = new window.MediaStream();\n }\n addTrackToStreamAndFireEvent(track, streams[remoteMsid.stream]);\n receiverList.push([track, rtpReceiver, streams[remoteMsid.stream]]);\n } else {\n if (!streams.default) {\n streams.default = new window.MediaStream();\n }\n addTrackToStreamAndFireEvent(track, streams.default);\n receiverList.push([track, rtpReceiver, streams.default]);\n }\n } else {\n // FIXME: actually the receiver should be created later.\n delete transceiver.rtpReceiver;\n }\n }\n });\n\n if (pc._dtlsRole === undefined) {\n pc._dtlsRole = description.type === 'offer' ? 'active' : 'passive';\n }\n\n pc._remoteDescription = {\n type: description.type,\n sdp: description.sdp\n };\n if (description.type === 'offer') {\n pc._updateSignalingState('have-remote-offer');\n } else {\n pc._updateSignalingState('stable');\n }\n Object.keys(streams).forEach(function(sid) {\n var stream = streams[sid];\n if (stream.getTracks().length) {\n if (pc.remoteStreams.indexOf(stream) === -1) {\n pc.remoteStreams.push(stream);\n var event = new Event('addstream');\n event.stream = stream;\n window.setTimeout(function() {\n pc._dispatchEvent('addstream', event);\n });\n }\n\n receiverList.forEach(function(item) {\n var track = item[0];\n var receiver = item[1];\n if (stream.id !== item[2].id) {\n return;\n }\n fireAddTrack(pc, track, receiver, [stream]);\n });\n }\n });\n receiverList.forEach(function(item) {\n if (item[2]) {\n return;\n }\n fireAddTrack(pc, item[0], item[1], []);\n });\n\n // check whether addIceCandidate({}) was called within four seconds after\n // setRemoteDescription.\n window.setTimeout(function() {\n if (!(pc && pc.transceivers)) {\n return;\n }\n pc.transceivers.forEach(function(transceiver) {\n if (transceiver.iceTransport &&\n transceiver.iceTransport.state === 'new' &&\n transceiver.iceTransport.getRemoteCandidates().length > 0) {\n console.warn('Timeout for addRemoteCandidate. Consider sending ' +\n 'an end-of-candidates notification');\n transceiver.iceTransport.addRemoteCandidate({});\n }\n });\n }, 4000);\n\n return Promise.resolve();\n };\n\n RTCPeerConnection.prototype.close = function() {\n this.transceivers.forEach(function(transceiver) {\n /* not yet\n if (transceiver.iceGatherer) {\n transceiver.iceGatherer.close();\n }\n */\n if (transceiver.iceTransport) {\n transceiver.iceTransport.stop();\n }\n if (transceiver.dtlsTransport) {\n transceiver.dtlsTransport.stop();\n }\n if (transceiver.rtpSender) {\n transceiver.rtpSender.stop();\n }\n if (transceiver.rtpReceiver) {\n transceiver.rtpReceiver.stop();\n }\n });\n // FIXME: clean up tracks, local streams, remote streams, etc\n this._isClosed = true;\n this._updateSignalingState('closed');\n };\n\n // Update the signaling state.\n RTCPeerConnection.prototype._updateSignalingState = function(newState) {\n this.signalingState = newState;\n var event = new Event('signalingstatechange');\n this._dispatchEvent('signalingstatechange', event);\n };\n\n // Determine whether to fire the negotiationneeded event.\n RTCPeerConnection.prototype._maybeFireNegotiationNeeded = function() {\n var pc = this;\n if (this.signalingState !== 'stable' || this.needNegotiation === true) {\n return;\n }\n this.needNegotiation = true;\n window.setTimeout(function() {\n if (pc.needNegotiation) {\n pc.needNegotiation = false;\n var event = new Event('negotiationneeded');\n pc._dispatchEvent('negotiationneeded', event);\n }\n }, 0);\n };\n\n // Update the ice connection state.\n RTCPeerConnection.prototype._updateIceConnectionState = function() {\n var newState;\n var states = {\n 'new': 0,\n closed: 0,\n checking: 0,\n connected: 0,\n completed: 0,\n disconnected: 0,\n failed: 0\n };\n this.transceivers.forEach(function(transceiver) {\n if (transceiver.iceTransport && !transceiver.rejected) {\n states[transceiver.iceTransport.state]++;\n }\n });\n\n newState = 'new';\n if (states.failed > 0) {\n newState = 'failed';\n } else if (states.checking > 0) {\n newState = 'checking';\n } else if (states.disconnected > 0) {\n newState = 'disconnected';\n } else if (states.new > 0) {\n newState = 'new';\n } else if (states.connected > 0) {\n newState = 'connected';\n } else if (states.completed > 0) {\n newState = 'completed';\n }\n\n if (newState !== this.iceConnectionState) {\n this.iceConnectionState = newState;\n var event = new Event('iceconnectionstatechange');\n this._dispatchEvent('iceconnectionstatechange', event);\n }\n };\n\n // Update the connection state.\n RTCPeerConnection.prototype._updateConnectionState = function() {\n var newState;\n var states = {\n 'new': 0,\n closed: 0,\n connecting: 0,\n connected: 0,\n completed: 0,\n disconnected: 0,\n failed: 0\n };\n this.transceivers.forEach(function(transceiver) {\n if (transceiver.iceTransport && transceiver.dtlsTransport &&\n !transceiver.rejected) {\n states[transceiver.iceTransport.state]++;\n states[transceiver.dtlsTransport.state]++;\n }\n });\n // ICETransport.completed and connected are the same for this purpose.\n states.connected += states.completed;\n\n newState = 'new';\n if (states.failed > 0) {\n newState = 'failed';\n } else if (states.connecting > 0) {\n newState = 'connecting';\n } else if (states.disconnected > 0) {\n newState = 'disconnected';\n } else if (states.new > 0) {\n newState = 'new';\n } else if (states.connected > 0) {\n newState = 'connected';\n }\n\n if (newState !== this.connectionState) {\n this.connectionState = newState;\n var event = new Event('connectionstatechange');\n this._dispatchEvent('connectionstatechange', event);\n }\n };\n\n RTCPeerConnection.prototype.createOffer = function() {\n var pc = this;\n\n if (pc._isClosed) {\n return Promise.reject(makeError('InvalidStateError',\n 'Can not call createOffer after close'));\n }\n\n var numAudioTracks = pc.transceivers.filter(function(t) {\n return t.kind === 'audio';\n }).length;\n var numVideoTracks = pc.transceivers.filter(function(t) {\n return t.kind === 'video';\n }).length;\n\n // Determine number of audio and video tracks we need to send/recv.\n var offerOptions = arguments[0];\n if (offerOptions) {\n // Reject Chrome legacy constraints.\n if (offerOptions.mandatory || offerOptions.optional) {\n throw new TypeError(\n 'Legacy mandatory/optional constraints not supported.');\n }\n if (offerOptions.offerToReceiveAudio !== undefined) {\n if (offerOptions.offerToReceiveAudio === true) {\n numAudioTracks = 1;\n } else if (offerOptions.offerToReceiveAudio === false) {\n numAudioTracks = 0;\n } else {\n numAudioTracks = offerOptions.offerToReceiveAudio;\n }\n }\n if (offerOptions.offerToReceiveVideo !== undefined) {\n if (offerOptions.offerToReceiveVideo === true) {\n numVideoTracks = 1;\n } else if (offerOptions.offerToReceiveVideo === false) {\n numVideoTracks = 0;\n } else {\n numVideoTracks = offerOptions.offerToReceiveVideo;\n }\n }\n }\n\n pc.transceivers.forEach(function(transceiver) {\n if (transceiver.kind === 'audio') {\n numAudioTracks--;\n if (numAudioTracks < 0) {\n transceiver.wantReceive = false;\n }\n } else if (transceiver.kind === 'video') {\n numVideoTracks--;\n if (numVideoTracks < 0) {\n transceiver.wantReceive = false;\n }\n }\n });\n\n // Create M-lines for recvonly streams.\n while (numAudioTracks > 0 || numVideoTracks > 0) {\n if (numAudioTracks > 0) {\n pc._createTransceiver('audio');\n numAudioTracks--;\n }\n if (numVideoTracks > 0) {\n pc._createTransceiver('video');\n numVideoTracks--;\n }\n }\n\n var sdp = SDPUtils.writeSessionBoilerplate(pc._sdpSessionId,\n pc._sdpSessionVersion++);\n pc.transceivers.forEach(function(transceiver, sdpMLineIndex) {\n // For each track, create an ice gatherer, ice transport,\n // dtls transport, potentially rtpsender and rtpreceiver.\n var track = transceiver.track;\n var kind = transceiver.kind;\n var mid = transceiver.mid || SDPUtils.generateIdentifier();\n transceiver.mid = mid;\n\n if (!transceiver.iceGatherer) {\n transceiver.iceGatherer = pc._createIceGatherer(sdpMLineIndex,\n pc.usingBundle);\n }\n\n var localCapabilities = window.RTCRtpSender.getCapabilities(kind);\n // filter RTX until additional stuff needed for RTX is implemented\n // in adapter.js\n if (edgeVersion < 15019) {\n localCapabilities.codecs = localCapabilities.codecs.filter(\n function(codec) {\n return codec.name !== 'rtx';\n });\n }\n localCapabilities.codecs.forEach(function(codec) {\n // work around https://bugs.chromium.org/p/webrtc/issues/detail?id=6552\n // by adding level-asymmetry-allowed=1\n if (codec.name === 'H264' &&\n codec.parameters['level-asymmetry-allowed'] === undefined) {\n codec.parameters['level-asymmetry-allowed'] = '1';\n }\n\n // for subsequent offers, we might have to re-use the payload\n // type of the last offer.\n if (transceiver.remoteCapabilities &&\n transceiver.remoteCapabilities.codecs) {\n transceiver.remoteCapabilities.codecs.forEach(function(remoteCodec) {\n if (codec.name.toLowerCase() === remoteCodec.name.toLowerCase() &&\n codec.clockRate === remoteCodec.clockRate) {\n codec.preferredPayloadType = remoteCodec.payloadType;\n }\n });\n }\n });\n localCapabilities.headerExtensions.forEach(function(hdrExt) {\n var remoteExtensions = transceiver.remoteCapabilities &&\n transceiver.remoteCapabilities.headerExtensions || [];\n remoteExtensions.forEach(function(rHdrExt) {\n if (hdrExt.uri === rHdrExt.uri) {\n hdrExt.id = rHdrExt.id;\n }\n });\n });\n\n // generate an ssrc now, to be used later in rtpSender.send\n var sendEncodingParameters = transceiver.sendEncodingParameters || [{\n ssrc: (2 * sdpMLineIndex + 1) * 1001\n }];\n if (track) {\n // add RTX\n if (edgeVersion >= 15019 && kind === 'video' &&\n !sendEncodingParameters[0].rtx) {\n sendEncodingParameters[0].rtx = {\n ssrc: sendEncodingParameters[0].ssrc + 1\n };\n }\n }\n\n if (transceiver.wantReceive) {\n transceiver.rtpReceiver = new window.RTCRtpReceiver(\n transceiver.dtlsTransport, kind);\n }\n\n transceiver.localCapabilities = localCapabilities;\n transceiver.sendEncodingParameters = sendEncodingParameters;\n });\n\n // always offer BUNDLE and dispose on return if not supported.\n if (pc._config.bundlePolicy !== 'max-compat') {\n sdp += 'a=group:BUNDLE ' + pc.transceivers.map(function(t) {\n return t.mid;\n }).join(' ') + '\\r\\n';\n }\n sdp += 'a=ice-options:trickle\\r\\n';\n\n pc.transceivers.forEach(function(transceiver, sdpMLineIndex) {\n sdp += writeMediaSection(transceiver, transceiver.localCapabilities,\n 'offer', transceiver.stream, pc._dtlsRole);\n sdp += 'a=rtcp-rsize\\r\\n';\n\n if (transceiver.iceGatherer && pc.iceGatheringState !== 'new' &&\n (sdpMLineIndex === 0 || !pc.usingBundle)) {\n transceiver.iceGatherer.getLocalCandidates().forEach(function(cand) {\n cand.component = 1;\n sdp += 'a=' + SDPUtils.writeCandidate(cand) + '\\r\\n';\n });\n\n if (transceiver.iceGatherer.state === 'completed') {\n sdp += 'a=end-of-candidates\\r\\n';\n }\n }\n });\n\n var desc = new window.RTCSessionDescription({\n type: 'offer',\n sdp: sdp\n });\n return Promise.resolve(desc);\n };\n\n RTCPeerConnection.prototype.createAnswer = function() {\n var pc = this;\n\n if (pc._isClosed) {\n return Promise.reject(makeError('InvalidStateError',\n 'Can not call createAnswer after close'));\n }\n\n if (!(pc.signalingState === 'have-remote-offer' ||\n pc.signalingState === 'have-local-pranswer')) {\n return Promise.reject(makeError('InvalidStateError',\n 'Can not call createAnswer in signalingState ' + pc.signalingState));\n }\n\n var sdp = SDPUtils.writeSessionBoilerplate(pc._sdpSessionId,\n pc._sdpSessionVersion++);\n if (pc.usingBundle) {\n sdp += 'a=group:BUNDLE ' + pc.transceivers.map(function(t) {\n return t.mid;\n }).join(' ') + '\\r\\n';\n }\n sdp += 'a=ice-options:trickle\\r\\n';\n\n var mediaSectionsInOffer = SDPUtils.getMediaSections(\n pc._remoteDescription.sdp).length;\n pc.transceivers.forEach(function(transceiver, sdpMLineIndex) {\n if (sdpMLineIndex + 1 > mediaSectionsInOffer) {\n return;\n }\n if (transceiver.rejected) {\n if (transceiver.kind === 'application') {\n if (transceiver.protocol === 'DTLS/SCTP') { // legacy fmt\n sdp += 'm=application 0 DTLS/SCTP 5000\\r\\n';\n } else {\n sdp += 'm=application 0 ' + transceiver.protocol +\n ' webrtc-datachannel\\r\\n';\n }\n } else if (transceiver.kind === 'audio') {\n sdp += 'm=audio 0 UDP/TLS/RTP/SAVPF 0\\r\\n' +\n 'a=rtpmap:0 PCMU/8000\\r\\n';\n } else if (transceiver.kind === 'video') {\n sdp += 'm=video 0 UDP/TLS/RTP/SAVPF 120\\r\\n' +\n 'a=rtpmap:120 VP8/90000\\r\\n';\n }\n sdp += 'c=IN IP4 0.0.0.0\\r\\n' +\n 'a=inactive\\r\\n' +\n 'a=mid:' + transceiver.mid + '\\r\\n';\n return;\n }\n\n // FIXME: look at direction.\n if (transceiver.stream) {\n var localTrack;\n if (transceiver.kind === 'audio') {\n localTrack = transceiver.stream.getAudioTracks()[0];\n } else if (transceiver.kind === 'video') {\n localTrack = transceiver.stream.getVideoTracks()[0];\n }\n if (localTrack) {\n // add RTX\n if (edgeVersion >= 15019 && transceiver.kind === 'video' &&\n !transceiver.sendEncodingParameters[0].rtx) {\n transceiver.sendEncodingParameters[0].rtx = {\n ssrc: transceiver.sendEncodingParameters[0].ssrc + 1\n };\n }\n }\n }\n\n // Calculate intersection of capabilities.\n var commonCapabilities = getCommonCapabilities(\n transceiver.localCapabilities,\n transceiver.remoteCapabilities);\n\n var hasRtx = commonCapabilities.codecs.filter(function(c) {\n return c.name.toLowerCase() === 'rtx';\n }).length;\n if (!hasRtx && transceiver.sendEncodingParameters[0].rtx) {\n delete transceiver.sendEncodingParameters[0].rtx;\n }\n\n sdp += writeMediaSection(transceiver, commonCapabilities,\n 'answer', transceiver.stream, pc._dtlsRole);\n if (transceiver.rtcpParameters &&\n transceiver.rtcpParameters.reducedSize) {\n sdp += 'a=rtcp-rsize\\r\\n';\n }\n });\n\n var desc = new window.RTCSessionDescription({\n type: 'answer',\n sdp: sdp\n });\n return Promise.resolve(desc);\n };\n\n RTCPeerConnection.prototype.addIceCandidate = function(candidate) {\n var pc = this;\n var sections;\n if (candidate && !(candidate.sdpMLineIndex !== undefined ||\n candidate.sdpMid)) {\n return Promise.reject(new TypeError('sdpMLineIndex or sdpMid required'));\n }\n\n // TODO: needs to go into ops queue.\n return new Promise(function(resolve, reject) {\n if (!pc._remoteDescription) {\n return reject(makeError('InvalidStateError',\n 'Can not add ICE candidate without a remote description'));\n } else if (!candidate || candidate.candidate === '') {\n for (var j = 0; j < pc.transceivers.length; j++) {\n if (pc.transceivers[j].rejected) {\n continue;\n }\n pc.transceivers[j].iceTransport.addRemoteCandidate({});\n sections = SDPUtils.getMediaSections(pc._remoteDescription.sdp);\n sections[j] += 'a=end-of-candidates\\r\\n';\n pc._remoteDescription.sdp =\n SDPUtils.getDescription(pc._remoteDescription.sdp) +\n sections.join('');\n if (pc.usingBundle) {\n break;\n }\n }\n } else {\n var sdpMLineIndex = candidate.sdpMLineIndex;\n if (candidate.sdpMid) {\n for (var i = 0; i < pc.transceivers.length; i++) {\n if (pc.transceivers[i].mid === candidate.sdpMid) {\n sdpMLineIndex = i;\n break;\n }\n }\n }\n var transceiver = pc.transceivers[sdpMLineIndex];\n if (transceiver) {\n if (transceiver.rejected) {\n return resolve();\n }\n var cand = Object.keys(candidate.candidate).length > 0 ?\n SDPUtils.parseCandidate(candidate.candidate) : {};\n // Ignore Chrome's invalid candidates since Edge does not like them.\n if (cand.protocol === 'tcp' && (cand.port === 0 || cand.port === 9)) {\n return resolve();\n }\n // Ignore RTCP candidates, we assume RTCP-MUX.\n if (cand.component && cand.component !== 1) {\n return resolve();\n }\n // when using bundle, avoid adding candidates to the wrong\n // ice transport. And avoid adding candidates added in the SDP.\n if (sdpMLineIndex === 0 || (sdpMLineIndex > 0 &&\n transceiver.iceTransport !== pc.transceivers[0].iceTransport)) {\n if (!maybeAddCandidate(transceiver.iceTransport, cand)) {\n return reject(makeError('OperationError',\n 'Can not add ICE candidate'));\n }\n }\n\n // update the remoteDescription.\n var candidateString = candidate.candidate.trim();\n if (candidateString.indexOf('a=') === 0) {\n candidateString = candidateString.substr(2);\n }\n sections = SDPUtils.getMediaSections(pc._remoteDescription.sdp);\n sections[sdpMLineIndex] += 'a=' +\n (cand.type ? candidateString : 'end-of-candidates')\n + '\\r\\n';\n pc._remoteDescription.sdp =\n SDPUtils.getDescription(pc._remoteDescription.sdp) +\n sections.join('');\n } else {\n return reject(makeError('OperationError',\n 'Can not add ICE candidate'));\n }\n }\n resolve();\n });\n };\n\n RTCPeerConnection.prototype.getStats = function(selector) {\n if (selector && selector instanceof window.MediaStreamTrack) {\n var senderOrReceiver = null;\n this.transceivers.forEach(function(transceiver) {\n if (transceiver.rtpSender &&\n transceiver.rtpSender.track === selector) {\n senderOrReceiver = transceiver.rtpSender;\n } else if (transceiver.rtpReceiver &&\n transceiver.rtpReceiver.track === selector) {\n senderOrReceiver = transceiver.rtpReceiver;\n }\n });\n if (!senderOrReceiver) {\n throw makeError('InvalidAccessError', 'Invalid selector.');\n }\n return senderOrReceiver.getStats();\n }\n\n var promises = [];\n this.transceivers.forEach(function(transceiver) {\n ['rtpSender', 'rtpReceiver', 'iceGatherer', 'iceTransport',\n 'dtlsTransport'].forEach(function(method) {\n if (transceiver[method]) {\n promises.push(transceiver[method].getStats());\n }\n });\n });\n return Promise.all(promises).then(function(allStats) {\n var results = new Map();\n allStats.forEach(function(stats) {\n stats.forEach(function(stat) {\n results.set(stat.id, stat);\n });\n });\n return results;\n });\n };\n\n // fix low-level stat names and return Map instead of object.\n var ortcObjects = ['RTCRtpSender', 'RTCRtpReceiver', 'RTCIceGatherer',\n 'RTCIceTransport', 'RTCDtlsTransport'];\n ortcObjects.forEach(function(ortcObjectName) {\n var obj = window[ortcObjectName];\n if (obj && obj.prototype && obj.prototype.getStats) {\n var nativeGetstats = obj.prototype.getStats;\n obj.prototype.getStats = function() {\n return nativeGetstats.apply(this)\n .then(function(nativeStats) {\n var mapStats = new Map();\n Object.keys(nativeStats).forEach(function(id) {\n nativeStats[id].type = fixStatsType(nativeStats[id]);\n mapStats.set(id, nativeStats[id]);\n });\n return mapStats;\n });\n };\n }\n });\n\n // legacy callback shims. Should be moved to adapter.js some days.\n var methods = ['createOffer', 'createAnswer'];\n methods.forEach(function(method) {\n var nativeMethod = RTCPeerConnection.prototype[method];\n RTCPeerConnection.prototype[method] = function() {\n var args = arguments;\n if (typeof args[0] === 'function' ||\n typeof args[1] === 'function') { // legacy\n return nativeMethod.apply(this, [arguments[2]])\n .then(function(description) {\n if (typeof args[0] === 'function') {\n args[0].apply(null, [description]);\n }\n }, function(error) {\n if (typeof args[1] === 'function') {\n args[1].apply(null, [error]);\n }\n });\n }\n return nativeMethod.apply(this, arguments);\n };\n });\n\n methods = ['setLocalDescription', 'setRemoteDescription', 'addIceCandidate'];\n methods.forEach(function(method) {\n var nativeMethod = RTCPeerConnection.prototype[method];\n RTCPeerConnection.prototype[method] = function() {\n var args = arguments;\n if (typeof args[1] === 'function' ||\n typeof args[2] === 'function') { // legacy\n return nativeMethod.apply(this, arguments)\n .then(function() {\n if (typeof args[1] === 'function') {\n args[1].apply(null);\n }\n }, function(error) {\n if (typeof args[2] === 'function') {\n args[2].apply(null, [error]);\n }\n });\n }\n return nativeMethod.apply(this, arguments);\n };\n });\n\n // getStats is special. It doesn't have a spec legacy method yet we support\n // getStats(something, cb) without error callbacks.\n ['getStats'].forEach(function(method) {\n var nativeMethod = RTCPeerConnection.prototype[method];\n RTCPeerConnection.prototype[method] = function() {\n var args = arguments;\n if (typeof args[1] === 'function') {\n return nativeMethod.apply(this, arguments)\n .then(function() {\n if (typeof args[1] === 'function') {\n args[1].apply(null);\n }\n });\n }\n return nativeMethod.apply(this, arguments);\n };\n });\n\n return RTCPeerConnection;\n};\n"," \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 = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 8);\n","module.exports = require(\"react\");","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","var api = require(\"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\");\n var content = require(\"!!../node_modules/css-loader/dist/cjs.js!./style.css\");\n\n content = content.__esModule ? content.default : content;\n\n if (typeof content === 'string') {\n content = [[module.id, content, '']];\n }\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nmodule.exports = content.locals || {};","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && btoa) {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of